我想将一些 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)}}