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的ASP防火墙
Oct 09 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 PHP
跟我学Laravel之路由
Oct 15 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
php内嵌函数用法实例
Mar 20 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
PHP常用正则表达式精选(推荐)
May 28 PHP
php反射学习之依赖注入示例
Jun 14 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
Jul 22 PHP
解决Laravel自定义类引入和命名空间的问题
Oct 15 PHP
聊聊 PHP 8 新特性 Attributes
Aug 19 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
我的论坛源代码(十)
2006/10/09 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
socket在egg中的使用实例代码详解
2019/05/30 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
python实现同时给多个变量赋值的方法
2015/04/30 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
python跨文件使用全局变量的实现
2020/11/17 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
Python基于Faker假数据构造库
2020/11/30 Python
让IE支持HTML5的方法
2012/12/11 HTML / CSS
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
研究生毕业鉴定
2014/01/29 职场文书
财政专业求职信范文
2014/02/19 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
幼儿园卫生保健制度
2015/08/05 职场文书
2019各种承诺书范文
2019/06/24 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书