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 相关文章推荐
PHP如何得到当前页和上一页的地址?
Nov 27 PHP
PHP 中文处理技巧
Apr 25 PHP
简单的cookie计数器实现源码
Jun 07 PHP
Web程序工作原理详解
Dec 25 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
Yii框架上传图片用法总结
Mar 28 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
PHP获取真实IP及IP模拟方法解析
Nov 24 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
Mar 09 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
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
php显示时间常用方法小结
2015/06/05 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
input 高级限制级用法
2009/03/26 Javascript
jQuery 连续列表实现代码
2009/12/21 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
js 获取范围内的随机数实例代码
2016/08/02 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
BootStrap的双日历时间控件使用
2017/07/25 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
原生js实现自定义滚动条
2021/01/20 Javascript
使用Python获取Linux系统的各种信息
2014/07/10 Python
Python获取央视节目单的实现代码
2015/07/25 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
使用Python检测文章抄袭及去重算法原理解析
2019/06/14 Python
完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
2020/04/01 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
Python机器学习工具scikit-learn的使用笔记
2021/01/28 Python
医学类个人求职信范文
2014/02/05 职场文书
顶撞老师检讨书
2014/02/07 职场文书
对外汉语专业大学生职业生涯规划书
2014/10/11 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
2015年社区党务工作总结
2015/04/21 职场文书
装修公司管理制度
2015/08/05 职场文书
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python