laravel隐式控制器(控制器路由)以及laravel控制器的分组

分类: PHP  • 发布时间: 2015-11-03 23:39:35  • 浏览量:12845

这次记录的内容由两部分,一部分是laravel的控制器分组,一部分是laravel的控制器路由,使用的laravel版本是5.1。


laravel的控制器分组:

laravel的控制器放在app/Http/Controllers目录下,如果控制器一多,就可能显得比较乱,我们想分成不同的目录管理,比如现在有个需求:我想把一个项目的用户中心的UserController控制器放在一个User目录下,那么我们只要使用命令:

php artisan make:controller User/UserController

运行万命令我们就可以在app/Http/Controllers/User/下找到UserController.php了,对于这个路由的访问方法,也很简单,比如该控制器下有个index方法,我们只需要在routes.php里面做如下定义即可使用:http://yourdomain.com/user,访问到index方法

Route::get('user','User\UserController@index');


laravel的控制器路由(隐式控制器):

前面接扫过laravel路由(基本版)laravel路由(路由群组)了,今天记录一下laravel的隐式控制器,也就是控制器路由,当然laravel的路由方法还有很多,以后在学习使用中,慢慢记载。

依然那刚才我们建立的那个控制器来说,我们为该控制器建立了如下几个方法:

class UserController extends Controller {
    public function getIndex()
    {
        echo 'index';
    }
    public function postRegister()
    {
        echo 'register';
    }
    public function getLogin()
    {
        echo 'login';
    }
}

然后我们在routes.php里面作如下定义:

Route::controller('user','User\UserController');

这样我们就能使用get方式访问:http://yourdomain.com/user/index和http://yourdomain.com/user/login,通过post方式访问http://yourdomain.com/user/register这些网址了。

可以看出我们在控制器中为类方法命名时采用的命名规则是:[http请求方式前缀] + [首字母大写的方法名]

访问的url是不带前缀,方法名首字母由大写变成小写。

如:getIndex、getLogin、postRegister


注:如果修改完routes.php,路由规则没有生效,可以使用下面命令更新一下规则:

php artisan route:clear


文章标签: php, laravel, 路由, 控制器
用户评论:
  • 游客76050 2017-03-28 14:12:25

    哈哈,写的不错!!!!!!!!!!!!!!!!!!!!

  • 游客 2017-07-05 15:05:39

    1234