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实现首页链接查询 友情链接检查的代码
Jan 05 PHP
php 自写函数代码 获取关键字 去超链接
Feb 08 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
yii的CURD操作实例详解
Dec 04 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
Feb 07 PHP
php中序列化与反序列化详解
Feb 13 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
php实现文件上传基本验证
Mar 04 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
dtree 网页树状菜单及传递对象集合到js内,动态生成节点
2012/04/14 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
js post提交调用方法
2014/02/12 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
EasyUI在Panel上动态添加LinkButton按钮
2017/08/11 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
python getopt详解及简单实例
2016/12/30 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
python实现ip地址的包含关系判断
2020/02/07 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
什么是组件架构
2016/05/15 面试题
关于安全的标语
2014/06/10 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
企业2014年度工作总结
2014/12/10 职场文书
行政经理岗位职责
2015/04/15 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
Spring Boot实现文件上传下载
2022/08/14 Java/Android
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript