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或asp创建网页桌面快捷方式的代码
Mar 23 PHP
一道关于php变量引用的面试题
Aug 08 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
PHP的APC模块实现上传进度条
Oct 27 PHP
PHP数组去重比较快的实现方式
Jan 19 PHP
php使用PDO执行SQL语句的方法分析
Feb 16 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
Laravel程序架构设计思路之使用动作类
Jun 07 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 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简单系统查询模块代码打包下载
2008/06/07 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
AngularJs $parse、$eval和$observe、$watch详解
2016/09/21 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
weex slider实现滑动底部导航功能
2017/08/28 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
H5实现手机拍照和选择上传功能
2019/12/18 Javascript
Vue+tracking.js 实现前端人脸检测功能
2020/04/16 Javascript
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python实现俄罗斯方块
2018/06/26 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
基于python的列表list和集合set操作
2019/11/24 Python
基于Numba提高python运行效率过程解析
2020/03/02 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python