提问者:小点点

使用参数调用索引控制器


所以基本上,我在我的路线上有一个宁静控制器的设置。现在我的问题是我怎么能调用索引页,如果有一个参数...它给我一个错误的控制器没有找到

我试着这样称呼它www.domain。com/sign-up/asdasdasd

Route::controller('sign-up','UserRegisterController');

然后在我的控制器里

class UserRegisterController extends \BaseController {

    protected $layout = 'layouts.unregistered';

    public function getIndex( $unique_code = null )
    {
        $title = 'Register';
        $this->layout->content = View::make( 'pages.unregistred.sign-up', compact('title', 'affiliate_ash'));
    }

共2个答案

匿名用户

通过注册:

Route::controller('sign-up','UserRegisterController');

您告诉路由,每次url以/sign up/开头时,它都应该在UserRegisterController中的verbAction约定中查找相应的操作。

假设你有:

http://domain.com/sign-up/social-signup

逻辑上,它将被映射到UserRegister@getSocialSignup(GET动词,因为它是GET请求)。如果/sign-up/之后没有任何内容,则默认情况下它将查找getIndex()

现在,考虑一下你的例子:

http://domain.com/sign-up/asdasdasd

根据相同的逻辑,它将尝试查找UserRegister@getAsdasdasd您很可能没有。这里的问题是无法告诉Routeasdasdasd实际上是一个参数。至少,不使用单一的路线定义。

您将不得不定义另一个路由,也许在您的Route::controller之后

Route::controller('sign-up','UserRegisterController');
// If above fail to find correct controller method, check the next line.
Route::get('sign-up/{param}', 'UserRegisterController@getIndex');

匿名用户

您需要在路由中定义参数Route::controller('log-up/{unique_code?}','UserRecsterController');。问号使其可选。

此处有完整的文档:http://laravel.com/docs/routing#route-参数