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 相关文章推荐
excellent!――ASCII Art(由目标图象生成ascii)
Feb 20 PHP
php 无限级 SelectTree 类
May 19 PHP
PHP 身份验证方面的函数
Oct 11 PHP
PHP 之Section与Cookie使用总结
Sep 14 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
php中的常用魔术方法总结
Aug 02 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
Jan 12 PHP
基于PHP如何把汉字转化为拼音
Dec 11 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
php探针使用原理和技巧讲解
Sep 17 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实现多条件查询实例代码
2010/07/17 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
python实现中文输出的两种方法
2015/05/09 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
python单例设计模式实现解析
2020/01/07 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
django实现日志按日期分割
2020/05/21 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
俄罗斯女装店:12storeez
2019/10/25 全球购物
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
C#公司笔试题
2014/03/28 面试题
高中生自我评价个人范文
2013/11/09 职场文书
承诺函范文
2015/01/21 职场文书
死者家属慰问信
2015/03/24 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
详解Python flask的前后端交互
2022/03/31 Python