使用参数调用索引控制器

时间:2014-08-25 12:33:35

标签: laravel laravel-4

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

我试着像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 个答案:

答案 0 :(得分:1)

通过注册:

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

您告诉路线每次网址以/ 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。这里的问题是没有办法告诉Route asdasdasd实际上是一个参数。至少,没有一个Route定义。

您必须在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');

答案 1 :(得分:0)

您需要在路线Route::controller('sign-up/{unique_code?}','UserRegisterController');中定义参数。问号使其成为可选项。

此处提供完整文档:http://laravel.com/docs/routing#route-parameters