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 is_file()和is_dir()用于遍历目录时用法注意事项
Mar 02 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
Aug 06 PHP
php中file_get_content 和curl以及fopen 效率分析
Sep 19 PHP
php防止sql注入简单分析
Mar 18 PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 PHP
PDO::quote讲解
Jan 29 PHP
thinkPHP+LayUI 流加载实现功能
Sep 27 PHP
php实现推荐功能的简单实例
Sep 29 PHP
基于PHP实现短信验证码发送次数限制
Jul 11 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桌面中心(二) 数据库写入
2007/03/11 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
PHP图像裁剪缩略裁切类源码及使用方法
2016/01/07 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
一款JavaScript压缩工具:X2JSCompactor
2007/06/13 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
微信小程序 教程之wxapp 视图容器 view
2016/10/19 Javascript
PHP实现本地图片上传和验证功能
2017/02/27 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
Node错误处理笔记之挖坑系列教程
2018/06/05 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
设计模式中的原型模式在Python程序中的应用示例
2016/03/02 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
大型活动组织方案
2014/05/10 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
解除施工合同协议书
2014/10/17 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
openstack中的rpc远程调用的方法
2021/07/09 Python