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简单系统数据添加以及数据删除模块源文件下载
Jun 07 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
php里array_work用法实例分析
Jul 13 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 PHP
laravel5.6实现数值转换
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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
javascript 面向对象封装与继承
2014/11/27 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
jQuery插件slides实现无缝轮播图特效
2015/04/17 Javascript
JavaScript+CSS实现的可折叠二级菜单实例
2016/02/29 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
详述 Sublime Text 打开 GBK 格式中文乱码的解决方法
2017/10/26 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
vue实现文件上传功能
2018/08/13 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
2019/08/16 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
2017/11/11 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
商务主管岗位职责
2013/12/08 职场文书
先进事迹演讲稿
2014/09/01 职场文书
经理聘任证明
2015/03/02 职场文书
欠条格式范本
2015/07/03 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python