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管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
探讨多键值cookie(php中cookie存取数组)的详解
Jun 06 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
php 发送带附件邮件示例
Jan 23 PHP
PHP定时更新程序设计思路分享
Jun 10 PHP
ThinkPHP添加更新标签的方法
Dec 05 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
PHP仿微信发红包领红包效果
Oct 30 PHP
PHP实现小偷程序实例
Oct 31 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
phpMyAdmin无法登陆的解决方法
Apr 27 PHP
php判断IP地址是否在多个IP段内
Aug 18 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让网站移动访问更加友好方法
2019/02/14 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
微信小程序实现侧边栏分类
2019/10/21 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
js实现时钟定时器
2020/03/26 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
python flask实现分页的示例代码
2018/08/02 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
品酒会策划方案
2014/05/26 职场文书
纪检干部先进事迹材料
2014/08/23 职场文书
群众路线个人剖析材料及整改措施
2014/11/04 职场文书
优秀党员推荐材料
2014/12/18 职场文书
涨价通知怎么写
2015/04/23 职场文书
离婚民事起诉状
2015/08/03 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL
德生BCL3000抢先使用感受和评价
2022/04/07 无线电