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 相关文章推荐
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 PHP
php 强制下载文件实现代码
Oct 28 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
Yii核心组件AssetManager原理分析
Dec 02 PHP
thinkphp autoload 命名空间自定义 namespace
Jul 17 PHP
PHP函数import_request_variables()用法分析
Apr 02 PHP
PHP性能优化大全(php.ini)
May 20 PHP
Smarty模板常见的简单应用分析
Nov 15 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 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 更新数据库中断的解决方法
2009/06/05 PHP
PHP 网页过期时间的控制代码
2009/06/29 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
jQuery在iframe中无法弹出对话框的解决方法
2014/01/12 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
jquery实现全选、反选、获得所有选中的checkbox
2020/09/13 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
Python读写配置文件的方法
2015/06/03 Python
python 爬取微信文章
2016/01/30 Python
Python实现统计代码行的方法分析
2017/07/12 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
简单了解python中对象的取反运算符
2019/07/01 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
python excel多行合并的方法
2020/12/09 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
集团薪酬管理制度
2014/01/13 职场文书
高中物理教学反思
2014/02/08 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
安全责任协议书范本
2016/03/23 职场文书
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
美元符号 $
2022/02/17 杂记
Java 死锁解决方案
2022/05/11 Java/Android