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 相关文章推荐
NT IIS下用ODBC连接数据库
Oct 09 PHP
PHP+MYSQL开发工具及资源收藏
Jan 02 PHP
PHP+jQuery 注册模块开发详解
Oct 14 PHP
配置php.ini实现PHP文件上传功能
Nov 27 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
PHP开启opcache提升代码性能
Apr 26 PHP
php跨服务器访问方法小结
May 12 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
php删除数组指定元素实现代码
May 03 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
php数组遍历类与用法示例
May 24 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
Zend studio for eclipse中使php可以调用mysql相关函数的设置方法
2008/10/13 PHP
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
php实现分页显示
2015/11/03 PHP
PHP数据库操作二:memcache用法分析
2017/08/16 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
JsRender for object语法简介
2014/10/31 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
ionic grid(栅格)九宫格制作详解
2018/06/30 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
python写的一个squid访问日志分析的小程序
2014/09/17 Python
Python生成随机密码的方法
2017/06/16 Python
python爬取网易云音乐评论
2018/11/16 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
Python简单I/O操作示例
2019/03/18 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
django rest framework 自定义返回方式
2020/07/12 Python
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
英语师范专业毕业生自荐信
2013/09/21 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
战友聚会邀请函
2014/01/18 职场文书
记账会计岗位职责
2014/06/16 职场文书
公务员政审材料范文
2014/12/23 职场文书
迎新生欢迎词
2015/01/23 职场文书
让子弹飞观后感
2015/06/11 职场文书
初中军训感想
2015/08/07 职场文书
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
Vue ECharts实现机舱座位选择展示功能
2022/05/15 Vue.js