Laravel5.1 框架控制器基础用法实例分析


Posted in PHP onJanuary 04, 2020

本文实例讲述了Laravel5.1 框架控制器基础用法。分享给大家供大家参考,具体如下:

为什么要使用控制器

像我们之前写一些逻辑呢都是在Route(路由)中,搞得Route文件特别庞大,其实我们应该把这些逻辑都抽到一个控制器里,路由分发后到控制器,控制器做相应的操作,比如关于后台的逻辑应该抽到AdminController中,Route文件只管分发。

1 如何创建一个控制器

1.1.1 创建RESTful控制器

至于什么是RESTful?自行百度- -,我先简单说下,它里面自动填充了一些增删改查的方法。OK 我们在Artisan控制台创建:

php artisan make:controller Admin\\HomeController

然后 我们在 app/Http/Controller/Admin/ 下找到它:

class HomeController 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)
  {
    //
  }
}

每个方法就是它的字面意思,至于怎么使用,我们来注册一条路由就清楚了。

1.1.2 实现RESTful路由

Route::group(['prefix' => 'admin', 'namespace' => 'Admin'], function (){
  Route::resource('/', 'HomeController');
});

resource是为RESTful风格的控制器注册多条路由的 我们可以在Artisan控制台看看:

php artisan route:list

如果没有什么错误的话,咱肯定会看见打印出来的表,表里面标明了每条路由的属性,如果你还是不太明白,那无所谓~咱以后的文章会频繁使用到这些内容哦。

1.2.1 普通控制器

在实际开发中啊 有时候咱不一定需要RESTful风格的服务器,我们只想要一个空的控制器来自己实现一些方法,可以这么生成:

php artisan make:controller UserController --plain

只要后面跟个plain标识符 就可以生成空的控制器啦。

1.2.2 单条路由使用控制器

上面是使用resource方法来对应控制器的动作了,像这种空的控制器咱怎么在路由中使用呢?

/**
 * 控制器名@方法名 就可以了
 */
Route::get('/user', 'UserController@index');
/**
 * 这是在配置一些其他东西时的写法,因为要在数组中嘛,它对应的KEY是uses。
 */
Route::get('/user', ['as' => 'showUser', 'uses' => 'UserController@index']);

然后自行实现UserController的index方法就可以咯:

class UserController extends Controller
{
  public function index()
  {
    return '展示一些东西';
  }
}

1.3.1 其实还有另一种写法 隐式控制器

这种路由我不太常用 先来看看语法吧:

Route::controller('/user', 'UserController');

首先 使用了controller来注册路由,第一个参数是路径没新鲜的,第二个参数是控制器 但是它没有跟着方法。因为它能自动根据路径相应到方法 看看下面控制器方法的实现。

class UserController extends Controller
{
  /**
   * 对应着 /user/ 路由 GET方式
   */
  public function getIndex()
  {
    return '展示一些东西~';
  }
  /**
   * 对应着 /user/show/{id} 路由 GET方式
   */
  public function getShow($id)
  {
    return '此用户ID为: '.$id;
  }
  /**
   * 对应着 /user/update/{id} 路由 POST方式
   */
  public function postUpdate($id, Requests\Request $request){
  }
}

这个控制器的方法开头都是HTTP请求的方式 最常用的就是GET 和 POST 后面跟的是方法名字,具体对应的路径在注释中写清楚了。

如果你想给这些路由命名的话,后面可以跟一个数组来命名:

Route::controller('/user', 'UserController',['getShow' => 'user.show']);

这样就可以给对应的方法命名了,oh funk 大K真的不喜欢这种方式,也许是没明白这样写的真谛把。

--今天关于控制器就先写这么多吧,具体逻辑实现咱还得学一些新的知识来结合使用,比如middleware啊和request还有blade模板引擎,但都不是很难~

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
kohana框架上传文件验证规则写法示例
Jul 14 PHP
如何让thinkphp在模型中自动完成session赋值小教程
Sep 05 PHP
php 类自动载入的方法
Jun 03 PHP
phpcms手机内容页面添加上一篇和下一篇
Jun 05 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
Jan 08 PHP
laravel学习教程之关联模型
Jul 30 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
php写app用的框架整理
Sep 29 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
May 02 PHP
PHP代码覆盖率统计详解
Jul 22 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 #PHP
Laravel5.1 框架路由基础详解
Jan 04 #PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 #PHP
PHP+MySQL实现在线测试答题实例
Jan 02 #PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 #PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 #PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 #PHP
You might like
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
vuex存值与取值的实例
2019/11/06 Javascript
python计数排序和基数排序算法实例
2014/04/25 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
python调用摄像头显示图像的实例
2018/08/03 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
python使用zip将list转为json的方法
2018/12/31 Python
Django多数据库配置及逆向生成model教程
2020/03/28 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
高中生学习生活的自我评价
2013/11/27 职场文书
家长给老师的道歉信
2014/01/13 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
经典演讲稿汇总
2014/05/19 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
市场部岗位职责范本
2015/04/15 职场文书
信访维稳承诺书
2015/05/04 职场文书