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编写大型网站问题集
Mar 06 PHP
一个自定义位数的php多用户计数器代码
Mar 11 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
解析csv数据导入mysql的方法
Jul 01 PHP
php根据身份证号码计算年龄的实例代码
Jan 18 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 PHP
Laravel5.5以下版本中如何自定义日志行为详解
Aug 01 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
PHP使用ajax的post方式下载excel文件简单示例
Aug 06 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下10件你也许并不了解的事情
2008/09/11 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
微信小程序自动客服功能
2017/11/02 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
python异步任务队列示例
2014/04/01 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
高中三年学习生活的自我评价
2013/10/10 职场文书
思想政治教育专业个人求职信范文
2013/12/20 职场文书
实习心得体会
2014/01/02 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
公司建议书怎么写
2014/05/15 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
2014年政协工作总结
2014/12/09 职场文书
中学生逃课检讨书
2015/02/17 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
WCG2010 星际争霸决赛 Flash vs Goojila 1 星际经典比赛回顾
2022/04/01 星际争霸