如何在隐式控制器内的方法中获取URI参数?
首先,我定义一个基本路线:
Route::controller('users', 'UserController');
然后,
class UserController extends BaseController {
public function getIndex()
{
//
}
public function postProfile()
{
//
}
public function anyLogin()
{
//
}
}
如果我想在URI中传递aditional参数,例如http://myapp/users/{param1}/{param2}
,我如何在尊重方法中阅读param1
和param2
?在此示例中,getIndex()
答案 0 :(得分:7)
如果你想拥有像http://myapp/users/{param1}/{param2}
这样的网址
你需要在你的控制器中拥有这样的:
Route::get('users/{param1}/{param2}', 'UserController@getIndex');
并访问它:
class UserController extends BaseController {
public function getIndex($param1, $param2)
{
//
}
}
但是,嘿,你也可以这样做,路线也一样:
class UserController extends BaseController {
public function getIndex()
{
$param1 = Input::get('param1');
$param2 = Input::get('param2');
}
}
但您的网址类似于:http://myapp/users?param1=value¶m2=value
答案 1 :(得分:2)
这是一种在模型之间创建类似层次结构的目录的方法(嵌套路由)
假设专辑有图像,我们想要一个专辑控制器(用于检索专辑数据)和一个图像控制器(用于检索图像数据)。
Route::group(array('before' => 'auth', 'prefix' => 'album/{album_id}'), function()
{
// urls can look like /album/145/image/* where * is implicit in image controller.
Route::controller('image', 'ImageController');
});
Route::group(array('before' => 'auth'), function()
{
// urls can look like /album/* where * is implicit in album controller.
Route::controller('album', 'AlbumController');
});