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在线代理转向代码
May 05 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
Jan 13 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
thinkphp路由规则使用示例详解和伪静态功能实现(apache重写)
Feb 24 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
隐性调用php程序的方法
Jun 13 PHP
PHP抽奖算法程序代码分享
Oct 08 PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 PHP
Laravel实现短信注册的示例代码
May 29 PHP
PHP实现类似题库抽题效果
Aug 16 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
2014/10/27 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
javascript弹出窗口中增加确定取消按钮
2016/06/24 Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
深入浅析vue组件间事件传递
2017/12/29 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
vue+vuex+axios实现登录、注册页权限拦截
2018/03/09 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
解决vue组件中click事件失效的问题
2019/11/09 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
Python通过解析网页实现看报程序的方法
2014/08/04 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
Python正则表达式指南 推荐
2018/10/09 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
python线程中的同步问题及解决方法
2019/08/29 Python
python 连续不等式语法糖实例
2020/04/15 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
申请任职学生会干部自荐书范文
2014/02/13 职场文书
蓬莱阁导游词
2015/02/04 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
学校教代会开幕词
2016/03/04 职场文书
深入浅析Django MTV模式
2021/09/04 Python