Laravel 控制器路由/带有 GET 参数的操作


Laravel Controler-Route / action with GET-Parameters

我想将一些 GET 参数(如 ?date=1234567&checked=1)附加到我的控制器路由中。我在 *blade.php 文件中想到了这样的事情:

<a href="{{ URL::action('ReportController@getReport', array('id'=> $message->EnergyMeterID, 'date' =>$message->created_at)) }}"> {{ $message->object }}</a>

但是,这会导致/608b1308-d29a-43e3-a396-0d3a72d640d7/1234567。

它采用以下方法:

... {{ URL::action('ReportController@getReport', $message->EnergyMeterID) }}?date={{ $message->CreateDate }}"> ... 

喜欢这个:

http://url-to-domain/report/608b1308-d29a-43e3-a396-0d3a72d640d7?date=123456

但是,有内置功能吗?

正如@itachi评论中提到的。有http_build_query php 函数。它将数组转换为查询字符串。

以下是您的使用方法:

{{ URL::action('ReportController@getReport') }}?{{ http_build_query(array('id'=> $message->EnergyMeterID, 'date' =>$message->created_at)) }}

更新

如果您有路由参数查询参数,只需像生成根链接一样

{{ URL::action('ReportController@getReport', $message->EnergyMeterID) }}?{{ http_build_query(array('date' =>$message->created_at)) }}
 $data = ['param1' => 'value1', 'param2',=>'value2']; // the parameters you want to send.

在视图:

{{ URL::action('ReportController@getMeter', $message->EnergyMeterID) }} ? {{http_build_query($data)}}