【问题标题】:Laravel Controler-Route / action with GET-ParametersLaravel Controller-Route / 带有 GET-Parameters 的操作
【发布时间】:2014-11-20 13:34:14
【问题描述】:

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

但是,有内置函数吗?

【问题讨论】:

  • 如何在 laravel 中使用这个? {{ URL::action('ReportController@getMeter', http_build_query(array($message->EnergyMeterID, 'date'=>$message->CreateDate))) }} 像这样?

标签: php laravel parameters get controller


【解决方案1】:

正如@itachi 在 cmets 中提到的那样。有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)) }}

【讨论】:

  • &amp;更改为?
  • 谢谢,但我需要第一个参数作为普通路由。我添加了一个示例。
【解决方案2】:
 $data = ['param1' => 'value1', 'param2',=>'value2']; // the parameters you want to send.

在视图中:

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

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 1970-01-01
    • 2014-06-08
    • 2017-01-14
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-17
    • 2013-10-06
    相关资源
    最近更新 更多