Laravel5.1 框架控制器基础用法实例分析
本文实例讲述了Laravel5.1框架控制器基础用法。分享给大家供大家参考,具体如下:
为什么要使用控制器
像我们之前写一些逻辑呢都是在Route(路由)中,搞得Route文件特别庞大,其实我们应该把这些逻辑都抽到一个控制器里,路由分发后到控制器,控制器做相应的操作,比如关于后台的逻辑应该抽到AdminController中,Route文件只管分发。
1如何创建一个控制器
1.1.1创建RESTful控制器
至于什么是RESTful?自行百度--,我先简单说下,它里面自动填充了一些增删改查的方法。OK我们在Artisan控制台创建:
phpartisanmake:controllerAdmin\\HomeController
然后我们在app/Http/Controller/Admin/下找到它:
classHomeControllerextendsController
{
/**
*Displayalistingoftheresource.
*
*@return\Illuminate\Http\Response
*/
publicfunctionindex()
{
}
/**
*Showtheformforcreatinganewresource.
*
*@return\Illuminate\Http\Response
*/
publicfunctioncreate()
{
//
}
/**
*Storeanewlycreatedresourceinstorage.
*
*@param\Illuminate\Http\Request$request
*@return\Illuminate\Http\Response
*/
publicfunctionstore(Request$request)
{
//
}
/**
*Displaythespecifiedresource.
*
*@paramint$id
*@return\Illuminate\Http\Response
*/
publicfunctionshow($id)
{
//
}
/**
*Showtheformforeditingthespecifiedresource.
*
*@paramint$id
*@return\Illuminate\Http\Response
*/
publicfunctionedit($id)
{
//
}
/**
*Updatethespecifiedresourceinstorage.
*
*@param\Illuminate\Http\Request$request
*@paramint$id
*@return\Illuminate\Http\Response
*/
publicfunctionupdate(Request$request,$id)
{
//
}
/**
*Removethespecifiedresourcefromstorage.
*
*@paramint$id
*@return\Illuminate\Http\Response
*/
publicfunctiondestroy($id)
{
//
}
}
每个方法就是它的字面意思,至于怎么使用,我们来注册一条路由就清楚了。
1.1.2实现RESTful路由
Route::group(['prefix'=>'admin','namespace'=>'Admin'],function(){
Route::resource('/','HomeController');
});
resource是为RESTful风格的控制器注册多条路由的我们可以在Artisan控制台看看:
phpartisanroute:list
如果没有什么错误的话,咱肯定会看见打印出来的表,表里面标明了每条路由的属性,如果你还是不太明白,那无所谓~咱以后的文章会频繁使用到这些内容哦。
1.2.1普通控制器
在实际开发中啊有时候咱不一定需要RESTful风格的服务器,我们只想要一个空的控制器来自己实现一些方法,可以这么生成:
phpartisanmake:controllerUserController--plain
只要后面跟个plain标识符就可以生成空的控制器啦。
1.2.2单条路由使用控制器
上面是使用resource方法来对应控制器的动作了,像这种空的控制器咱怎么在路由中使用呢?
/**
*控制器名@方法名就可以了
*/
Route::get('/user','UserController@index');
/**
*这是在配置一些其他东西时的写法,因为要在数组中嘛,它对应的KEY是uses。
*/
Route::get('/user',['as'=>'showUser','uses'=>'UserController@index']);
然后自行实现UserController的index方法就可以咯:
classUserControllerextendsController
{
publicfunctionindex()
{
return'展示一些东西';
}
}
1.3.1其实还有另一种写法隐式控制器
这种路由我不太常用先来看看语法吧:
Route::controller('/user','UserController');
首先使用了controller来注册路由,第一个参数是路径没新鲜的,第二个参数是控制器但是它没有跟着方法。因为它能自动根据路径相应到方法看看下面控制器方法的实现。
classUserControllerextendsController
{
/**
*对应着/user/路由GET方式
*/
publicfunctiongetIndex()
{
return'展示一些东西~';
}
/**
*对应着/user/show/{id}路由GET方式
*/
publicfunctiongetShow($id)
{
return'此用户ID为:'.$id;
}
/**
*对应着/user/update/{id}路由POST方式
*/
publicfunctionpostUpdate($id,Requests\Request$request){
}
}
这个控制器的方法开头都是HTTP请求的方式最常用的就是GET和POST后面跟的是方法名字,具体对应的路径在注释中写清楚了。
如果你想给这些路由命名的话,后面可以跟一个数组来命名:
Route::controller('/user','UserController',['getShow'=>'user.show']);
这样就可以给对应的方法命名了,ohfunk大K真的不喜欢这种方式,也许是没明白这样写的真谛把。
--今天关于控制器就先写这么多吧,具体逻辑实现咱还得学一些新的知识来结合使用,比如middleware啊和request还有blade模板引擎,但都不是很难~
更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。