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动画图片尺寸示例代码分享
Dec 05 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
PHP新建类问题分析及解决思路
Nov 19 PHP
PHP使用mkdir创建多级目录的方法
Dec 22 PHP
PHP中each与list用法分析
Jan 08 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
php采集神器cURL使用方法详解
Feb 19 PHP
基于PHP实现商品成交时发送短信功能
May 11 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
Jul 28 PHP
Yii统计不同类型邮箱数量的方法
Oct 18 PHP
php获取数据库中数据的实现方法
Jun 01 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php的memcached客户端memcached
2011/06/14 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
js实现楼层导航功能
2017/02/23 Javascript
Vue的Class与Style绑定的方法
2017/09/01 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
[02:03]永远的信仰DOTA2 中国军团历届国际邀请赛回顾
2016/06/26 DOTA
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
Python中type的构造函数参数含义说明
2015/06/21 Python
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python数组遍历的简单实现方法小结
2016/04/27 Python
详解python中的线程
2018/02/10 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
python开发入门——列表生成式
2020/09/03 Python
pycharm如何设置官方中文(如何汉化)
2020/12/29 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
阿迪达斯越南官网:adidas越南
2020/07/19 全球购物
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
美术教师个人工作总结
2015/02/06 职场文书
试用期解除劳动合同通知书
2015/04/16 职场文书
联村联户简报
2015/07/21 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
pandas中关于apply+lambda的应用
2022/02/28 Python
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python