Laravel5.1框架下有关路由的一种解决办法

先来描述一下遇到的问题:

Route::get('shop/list', "ShopController@list");
Route::get('user/list', "UserController@list");
Route::get('video/list', "VideoController@list");
Route::get('article/list', "ArticleController@list");
Route::get('photo/list', "PhotoController@list");
Route::get('song/list', "SongController@list");
Route::get('staff/list', "StaffController@list");

了解laravel框架的肯定知道上述路由的意义,如果我们有很多models,那路由岂不是要写很多条,现在我想实现的功能就是:

/{model}/lists 转发到{$model}Controller控制器的lists方法
如 /shop/lists => shopController控制器 lists方法,
/user/lists => userController控制器 lists方法,
...

解决办法就是:

以下代码适用于 Laravel 5.0 及以上:
Route::get('{model}/lists', function ($model) {
  $className = 'App\Http\Controllers\\'.ucfirst(strtolower($model)).'Controller';
  $obj = new $className;
  return $obj->lists();
});





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值