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+oracle 分页类
Oct 09 PHP
dedecms模板标签代码官方参考
Mar 17 PHP
php 连接mysql连接被重置的解决方法
Feb 15 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
Apr 09 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
PHP反射机制原理与用法详解
Feb 15 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
基于Laravel5.4实现多字段登录功能方法示例
Aug 11 PHP
PHP 断点续传实例详解
Nov 11 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 PHP
PHP7移除的扩展和SAPI
Mar 09 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 Mssql操作简单封装支持存储过程
2009/12/11 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
浅谈JavaScript Date日期和时间对象
2014/12/29 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
Vue动态组件实例解析
2017/08/20 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
使用vue构建多页面应用的示例
2020/10/22 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
基于python生成器封装的协程类
2019/03/20 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
PyCharm 2020 激活到 2100 年的教程
2020/03/25 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
关于box-sizing的全面理解
2016/07/28 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
外贸业务员求职自荐信分享
2013/09/21 职场文书
机械专业应届生求职信
2013/09/21 职场文书
年度考核自我评价
2014/01/25 职场文书
《乌塔》教学反思
2014/02/17 职场文书
境外导游求职信
2014/02/27 职场文书
对照检查剖析材料
2014/09/30 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS