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中的数组操作函数整理
Aug 18 PHP
php magic_quotes_gpc的一点认识与分析
Aug 18 PHP
for循环连续求和、九九乘法表代码
Feb 20 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
CI框架Session.php源码分析
Nov 03 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
PHP获取QQ达人QQ信息的方法
Mar 05 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
老生常谈PHP位运算的用途
Mar 12 PHP
php 使用curl模拟ip和来源进行访问的实现方法
May 02 PHP
thinkPHP5框架路由常用知识点汇总
Sep 15 PHP
laravel清除视图缓存的代码
Oct 23 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
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
php若干单维数组遍历方法的比较
2011/09/20 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
2014/08/27 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
vscode中vue-cli项目es-lint的配置方法
2018/07/30 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
python实现给数组按片赋值的方法
2015/07/28 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
基于django ManyToMany 使用的注意事项详解
2019/08/09 Python
如何获取Python简单for循环索引
2019/11/21 Python
python右对齐的实例方法
2020/07/05 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
Python collections模块的使用方法
2020/10/09 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
汽车技术服务英文求职信范文
2014/01/02 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
学校对教师的评语
2014/04/28 职场文书
质量标语大全
2014/06/12 职场文书
毕业论文致谢信
2015/05/14 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS