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同时支持GIF、png、JPEG
Oct 09 PHP
php后台程序与Javascript的两种交互方式
Oct 25 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
PHP中file_exists()判断中文文件名无效的解决方法
Nov 12 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
PHP中文乱码解决方案
Mar 05 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
php生成gif动画的方法
Nov 05 PHP
PHP记录和读取JSON格式日志文件
Jul 07 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 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
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
php中的观察者模式简单实例
2015/01/20 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
javascript date格式化示例
2013/09/25 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
JavaScript数据结构之双向链表和双向循环链表的实现
2017/11/28 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
在Django的视图中使用form对象的方法
2015/07/18 Python
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
用python制作游戏外挂
2018/01/04 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
学生党员的自我评价范文
2014/03/01 职场文书
导师对论文的学术评语
2015/01/04 职场文书
银行自荐信范文
2015/03/25 职场文书
大学班长竞选稿
2015/11/20 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python