我有以下路线:
Route::get('reviewers/{id}', 'ReviewerController@single');
并在我的ReviewerController上执行此操作:
public function single(){
$id = Input::get('id');
return View::make('reviewer.single')
->with('id', $id);}
在我的单个View中,我转储了$ id的值,它是NULL。虽然我确实在url中提供了一个id(例如,reviewers / 1),为什么$ id为null?
答案 0 :(得分:0)
请改用:
public function single($id)
{
$id = (int)$id; // if you haven't already ensured it's integer with Route::pattern() method
return View::make('reviewer.single')->with('id', $id);
}
要使用路由通配符并传递数据,控制器方法必须具有必要的参数。在这种情况下,不使用输入外观。
答案 1 :(得分:0)
生成网址时,您会像 reviewers / 2 一样生成网址。 Laravel有几种helper方法来生成路由的URL,例如到命名的路由或:
//route to controller action
$url = action('ReviewerController@single', $id);
在您的控制器中:
public function single($id){
return View::make('reviewer.single')
->with('id', $id);
}