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 相关文章推荐
PHP5 面向对象程序设计
Feb 13 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
Oct 31 PHP
php数组去重的函数代码
Feb 03 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
PHP实现二维数组按某列进行排序的方法
Nov 18 PHP
php实现的中文分词类完整实例
Feb 06 PHP
关于PHP转换超过2038年日期出错的问题解决
Jun 28 PHP
Laravel 5.4.36中session没有保存成功问题的解决
Feb 19 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 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
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
2017/07/27 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
jquery简单体验
2007/01/10 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
2014/01/09 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
Javascript 是你的高阶函数(高级应用)
2015/06/15 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python中的类学习笔记
2014/09/23 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
军神教学反思
2014/02/04 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
租房安全协议书
2014/08/20 职场文书
环卫工人慰问信
2015/02/15 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
我爱我班主题班会
2015/08/13 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书