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
在线短消息收发的程序,不用数据库
Oct 09 PHP
dedecms模版制作使用方法
Apr 03 PHP
在PHP中使用反射技术的架构插件使用说明
May 18 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
smarty中post用法实例
Nov 28 PHP
php数组添加与删除单元的常用函数实例分析
Feb 16 PHP
thinkphp中U方法按路由规则生成url的方法
Mar 12 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 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代码的53条建议
2008/03/27 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
php版阿里云OSS图片上传类详解
2016/12/01 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
JS+CSS实现带小三角指引的滑动门效果
2015/09/22 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
微信小程序返回上一级页面的实现代码
2020/06/19 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
Python常用算法学习基础教程
2017/04/13 Python
python之super的使用小结
2018/08/13 Python
Python实现京东秒杀功能代码
2019/05/16 Python
python类中super() 的使用解析
2019/12/19 Python
利用Python制作动态排名图的实现代码
2020/04/09 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
敬老院标语
2014/06/27 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
2014年班级工作总结范文
2014/12/23 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
党小组考察意见
2015/06/02 职场文书
《山中访友》教学反思
2016/02/24 职场文书
靠谱准确的求职信
2019/04/02 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang
golang实现浏览器导出excel文件功能
2022/03/25 Golang
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技