Laravel 4参数作为控制器动作

Mak*_*iak 2 laravel laravel-4

我想知道Laravel 4是否有可能根据给定的参数实际调用控制器的功能.例如,如果我有这样的路线:

'auth/{action}
Run Code Online (Sandbox Code Playgroud)

那么有没有办法根据'action'参数调用控制器动作?在Kohana,我可以这样写:

'auth/<action>' -> defaults (controller=>'UserController',action=>'<action>'
Run Code Online (Sandbox Code Playgroud)

那不是那样,但你知道我的意思:)无论如何,如果没有机会这样做,那么我必须将我的路线分成单一路线吗?

Jas*_*wis 5

听起来你只需要auth作为基URI 路由到控制器.

Route::controller('auth', 'AuthController');
Run Code Online (Sandbox Code Playgroud)

此控制器(AuthController)现在希望您的方法以他们应响应的HTTP谓词作为前缀.您还可以使用该getIndex方法来响应基URI,在本例中为auth.

示例控制器可能如下所示:

class AuthController extends Controller {

    public function getIndex()
    {
        return 'Index page'; // Responds to localhost/auth
    }

    public function getLogin()
    {
        return 'Login page'; // Responds to localhost/auth/login
    }

}
Run Code Online (Sandbox Code Playgroud)

你应该注意一件事.如果你Route::controller('/', 'HomeController');那么它应该是最后的.之后的任何路由都不会被调用,因为Laravel会自动添加一个"缺失方法"路由,该路由将捕获控制器上可路由方法不匹配的任何内容.

更多关于RESTful控制器的官方文档.