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和MySql来与ODBC数据连接
Oct 09 PHP
用php+mysql一个名片库程序
Oct 09 PHP
用PHP将网址字符串转换成超链接(网址或email)
May 25 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
Oct 19 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
Apr 08 PHP
PHP中使用addslashes函数转义的安全性原理分析
Nov 03 PHP
php发送邮件的问题详解
Jun 22 PHP
PHP中array_keys和array_unique函数源码的分析
Feb 26 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP children()函数讲解
Feb 03 PHP
PHP chr()函数讲解
Feb 11 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
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
javascript window.opener的用法分析
2010/04/07 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
关于Mac下安装nodejs、npm和cnpm的教程
2018/04/11 NodeJs
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
详解React+Koa实现服务端渲染(SSR)
2018/05/23 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
python赋值操作方法分享
2013/03/23 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
python中reload重载实例用法
2020/12/15 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
后勤部经理岗位职责
2014/02/23 职场文书
医院护士见习期自我鉴定
2014/04/10 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
公司开除员工通知
2015/04/22 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书