所以基本上,我在路线上设置了一个安静的控制器。现在我的问题是,如果有参数,我如何调用索引页面..它给我一个未找到控制器的错误
我试着像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'));
}
答案 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');
中定义参数。问号使其成为可选项。