如何将URL参数传递给Controller Action

时间:2014-03-15 19:01:54

标签: php laravel laravel-4

我有以下路线:

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?

2 个答案:

答案 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);
}