laravel框架中控制器的创建和使用方法分析


Posted in PHP onNovember 23, 2019

本文实例讲述了laravel框架中控制器的创建和使用方法。分享给大家供大家参考,具体如下:

laravel中我们可以使用 artisan 命令来帮助我们创建控制器文件。

php artisan make:controller TestController

TestController 控制器名我们可以任意指定。文件默认会创建在 app\Http\Controllers 目录下。

打开控制器文件,我们就可以添加自已的方法了。

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
  public function test()
  {
    echo 'test...';
  }
}

在路由文件 routes/web.php 中配置路由就可以访问了。

Route::get('/test', 'TestController@test');

如何获取用户的输入,一般推荐通过依赖注入的方式来获取。

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
  public function test(Request $request)
  {
    //获取所有请求数据
    $data = $request->all();
    //获取指定请求数据
    $id = $request->input('id');
  }
}

laravel中为我们编写 restful 风格的代码,提供了简单方式,只需在创建控制器命令后面加上 --resource 选项。

php artisan make:controller OrderController --resource

laravel帮我们创建指定的方法,各自表示不同的意义和作用。

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class OrderController extends Controller
{
  /**
   * Display a listing of the resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function index()
  {
    //
  }
  /**
   * Show the form for creating a new resource.
   *
   * @return \Illuminate\Http\Response
   */
  public function create()
  {
    //
  }
  /**
   * Store a newly created resource in storage.
   *
   * @param \Illuminate\Http\Request $request
   * @return \Illuminate\Http\Response
   */
  public function store(Request $request)
  {
    //
  }
  /**
   * Display the specified resource.
   *
   * @param int $id
   * @return \Illuminate\Http\Response
   */
  public function show($id)
  {
    //
  }
  /**
   * Show the form for editing the specified resource.
   *
   * @param int $id
   * @return \Illuminate\Http\Response
   */
  public function edit($id)
  {
    //
  }
  /**
   * Update the specified resource in storage.
   *
   * @param \Illuminate\Http\Request $request
   * @param int $id
   * @return \Illuminate\Http\Response
   */
  public function update(Request $request, $id)
  {
    //
  }
  /**
   * Remove the specified resource from storage.
   *
   * @param int $id
   * @return \Illuminate\Http\Response
   */
  public function destroy($id)
  {
    //
  }
}

具体方法的作用如下所示:

HTTP 方法 URI 控制器方法 路由名称 作用描述
GET /order index order.index 显示所有订单列表
GET /order/create create order.create 显示创建订单页面
POST /order store order.store 接收提交数据,创建订单
GET /order/{id} show order.show 显示单个订单信息
GET /order/{id}/edit edit order.edit 显示修改订单页面
PUT/PATCH /order/{id} update order.update 接收提交数据,修改订单
DELETE /order/{id} destroy order.destroy 删除订单

最后我们通过 Route::resource() 来绑定上面的所有路由。

Route::resource('order', 'OrderController');

我们也可以通过命令查看,绑定的路由列表。

php artisan route:list

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP调用数据库的存贮过程!
Oct 09 PHP
PHP图片上传类带图片显示
Nov 25 PHP
PHP 字符串 小常识
Jun 05 PHP
php5 图片验证码实现代码
Dec 11 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
谨慎使用PHP的引用原因分析
Sep 06 PHP
php实现的一个很好用HTML解析器类可用于采集数据
Sep 23 PHP
php中的curl_multi系列函数使用例子
Jul 29 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
PHP处理bmp格式图片的方法分析
Jul 04 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 #PHP
laravel框架中路由设置,路由参数和路由命名实例分析
Nov 23 #PHP
laravel框架创建授权策略实例分析
Nov 22 #PHP
laravel框架语言包拓展实现方法分析
Nov 22 #PHP
laravel框架邮箱认证实现方法详解
Nov 22 #PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 #PHP
PHP实现微信提现功能(微信商城)
Nov 21 #PHP
You might like
php 获取本机外网/公网IP的代码
2010/05/09 PHP
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
jQuery继承extend用法详解
2016/10/10 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
Python每天必学之bytes字节
2016/01/28 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
python matplotlib库的基本使用
2020/09/23 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
一篇.NET面试题
2014/09/29 面试题
幼儿园开学寄语
2014/04/03 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
入党现实表现材料
2014/12/23 职场文书
纪检监察立案决定书
2015/06/24 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python