【问题标题】:Laravel route including all $_GET paramsLaravel 路线包括所有 $_GET 参数
【发布时间】:2017-04-30 23:46:49
【问题描述】:

我使用 Laravel 5.3,并且我已经命名了我所有的路线。

我想使用 route() 函数并包含我的 $_GET 参数。

这是我尝试过的:

<a href="{{ route('myRoute', ['id' => $id, 'slug' => str_slug($name)], request()->all()]) }}">

或者

<a href="{{ route('myRoute', [array_merge(['id' => $id, 'slug' => str_slug($name)], request()->all())]) }}">

现在,我收到了这个错误

UrlGenerator.php 第 377 行中的 ErrorException:数组到字符串 转换(查看:....

有没有办法包含所有参数?我不想一一列举。谢谢

编辑

我的代码中有一个错误,现在它可以用于:

<a href="{{ route('myRoute', array_merge(['id' => $id, 'slug' => str_slug($name)], request()->all())) }}">

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    一个便宜的黑客是这样的:

    <a href="{{ route('myRoute') . '?' . http_build_query(array_merge(['id' => $id, 'slug' => str_slug($name)], request()->all())) }}">
    

    http_build_query 将关联数组转换为 GET 参数字符串(不带起始 ?)。

    【讨论】:

      【解决方案2】:

      request()-&gt;all()['id' =&gt; $id, 'slug' =&gt; str_slug($name)] 是数组,您试图将其作为字符串传递。当你有大量数据时,最好使用POST 方法传递。

      【讨论】:

      • 我的代码有错误,我使用了[ array_merge( ... ) ],我创建了一个数组数组......它现在可以工作了。我知道 POST ......但你确定如果我在谈论路线,我会使用 GET 参数。
      猜你喜欢
      • 2014-02-08
      • 2020-07-20
      • 2014-07-12
      • 1970-01-01
      • 2013-04-17
      • 1970-01-01
      • 2015-01-15
      • 2016-11-02
      相关资源
      最近更新 更多