隐式控制器中的Laravel4-URI参数

隐式控制器中的Laravel4-URI参数,laravel,laravel-4,parameters,controller,routes,Laravel,Laravel 4,Parameters,Controller,Routes,如何在隐式控制器内的方法中获取URI参数 首先,我定义一个基本路线: Route::controller('users', 'UserController'); 那么 class UserController extends BaseController { public function getIndex() { // } public function postProfile() { // } p

如何在隐式控制器内的方法中获取URI参数

首先,我定义一个基本路线:

Route::controller('users', 'UserController');
那么

class UserController extends BaseController {

    public function getIndex()
    {
        //
    }

    public function postProfile()
    {
        //
    }

    public function anyLogin()
    {
        //
    }

}

如果我想在URI中传递传统参数,比如
http://myapp/users/{param1}/{param2}
,如何读取相应方法中的
param1
param2
?在本例中,如果希望像
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');

    }

}

但是你的URL应该是这样的:
http://myapp/users?param1=value¶m2=value

以下是一种在模型之间创建类似目录的层次结构的方法(嵌套路由)

假设相册有图像,我们需要一个相册控制器(检索相册数据)和一个图像控制器(检索图像数据)


也许这是唯一的办法。在这种情况下,我也希望从隐式控制器中获益,但似乎我们无法做到这一点。如果没有其他人提供更好的解决方案,您将得到桥。:)嗯,很多人说隐式控制器对于项目的新开发人员来说很难阅读和猜测(以防你有一个新的)。大多数人(包括我的偶像jeffrey way)建议使用资源控制器,或者只是使用添加控制器的常规方法(例如Route::post或Route::put)。但这是开发者的偏好,我们都有不同的偏好:)
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');

});