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模拟HTTP认证
Oct 09 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
在PHP中养成7个面向对象的好习惯
Jan 28 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
Mar 23 PHP
sphinx增量索引的一个问题
Jun 14 PHP
php 强制下载文件实现代码
Oct 28 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
Yii数据库缓存实例分析
Mar 29 PHP
浅谈PHP中的错误处理和异常处理
Feb 04 PHP
PHP生成(支持多模板)二维码海报代码
Apr 30 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 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
PHP 表单提交给自己
2008/07/24 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
基于ThinkPHP实现批量删除
2015/12/18 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
php组合排序简单实现方法
2016/10/15 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
window.onload 加载完毕的问题及解决方案(下)
2009/07/09 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
jQuery表格行上移下移和置顶的实现方法
2015/10/08 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
5种JavaScript脚本加载的方式
2017/01/16 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
浅谈dataframe中更改列属性的方法
2018/07/10 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
PatPat香港:婴童服饰和亲子全家装在线购物
2020/09/27 全球购物
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
JAVA软件工程师测试题
2014/07/25 面试题
教学质量评估实施方案
2014/03/17 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
辞职信范文大全
2015/03/02 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书