从Laravel刀片到控制器获取URL参数

时间:2017-07-12 03:37:57

标签: laravel url parameter-passing

我已经为我的刀片提供了一个传递参数的链接。

<a href="{!! route('search',['id'=>2]) !!}">{{$value}}</a>

我现在唯一的问题是如何将参数传递给控制器​​。 我是这样做的

public function search(Request $request){
     $sid = $request->get('id');
}

但我没有从$ sid获得任何价值。我该怎么办?

抱歉,我忘了提到已经设置了路线。

Route::post('search', 'Search@search')->name('search');

3 个答案:

答案 0 :(得分:0)

因为链接不是post方法..这会起作用

<a href="{!! route('search',['id'=>2]) !!}">{{$value}}</a>

然后在你的路线

Route::get('search/{id}',BlahblahController@search);
控制器中的

public function search(Request $request, $id)
{
    $id = $id;
}

答案 1 :(得分:0)

如果您的路由/youroute/{id}此方案,那么您需要再向控制器中的方法传递一个参数

public function search(Request $request,$id){
 $sid = $id;
}

答案 2 :(得分:0)

您尝试将url bind parameter传递给函数。未传递query字符串get参数。所以你需要像这样访问id

方法1:

控制器:

public function search(Request $request,$id){ $sid = $id; }

你的路线应该是这样的

路线:

Route::get('search/{id}',BlahblahController@search);

方法2:

或者,如果您不想将参数绑定到网址,只想要{_ 1}}这样的$ _GET参数

您可以像这样使用它

控制器:

url/?id=1

路线:

public function search(Request $request){
     $sid = $request->get('id');
}