所以基本上,我在我的路线上有一个宁静控制器的设置。现在我的问题是我怎么能调用索引页,如果有一个参数...它给我一个错误的控制器没有找到
我试着这样称呼它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'));
}
通过注册:
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
您很可能没有。这里的问题是无法告诉Route
asdasdasd实际上是一个参数。至少,不使用单一的路线
定义。
您将不得不定义另一个路由,也许在您的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-参数