【问题标题】:Laravel Key Value Pair in Get Request获取请求中的 Laravel 键值对
【发布时间】:2018-10-24 18:55:33
【问题描述】:

我正在使用 Laravel 5.4 和 Axios 向我的后端发出异步请求,并根据我的 api 端点的 get 请求参数检索数据。

我可以在检查器中看到我正在向服务器发出以下请求:

https://website.com/api/users?page=1&sort=%7B%22fieldName%22:%22lname%22,%22order%22:%22asc%22%7D&filter=

解码为:

https://website.com/api/users?page=1&sort={"fieldName":"lname","order":"asc"}&filter=

看起来我可以通过以下方式成功获取查询片段:

return $request->query('sort');

返回:

data:
    fieldName: "lname"
    order: "asc"

但是当我使用时:

return $request->query('sort.fieldName');

我什么都没有。我不应该使用dot notation 吗?如何获取排序输入的每个键/值对?感谢您的帮助!

【问题讨论】:

  • 你可以去storage/logs/laravel.log。检查它在页面底部显示的错误消息。我不是专家,所以帮不了你太多。但我这么说是因为大多数时候我都在使用这个文件进行调试。
  • 我实际上只是返回值,然后将其记录到前端的控制台中。我没有收到来自return $request->query('sort.fieldName'); 的任何错误,只是返回了空白数据。好主意!

标签: php laravel vue.js request axios


【解决方案1】:

我认为您可以使用点表示法,但无论如何您都可以尝试将其从 json 转换为关联数组。

$sort = json_decode($request->query('sort'), true);

这应该允许您执行类似$sort[‘fieldName’] 的操作。 true 参数告诉解码器将其转换为关联数组而不是返回一个对象。

【讨论】:

  • 你不能使用点符号,因为 laravel 需要一个字符串,它不知道 sortjson,所以上面将允许你手动完成。
  • 谢谢@Tom Bird。这正是我所需要的。不知道 json_decode 的 assoc 参数,也不知道 Laravel 期待一个字符串。有道理!
  • 没问题很高兴我能帮上忙!
猜你喜欢
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 2019-04-21
  • 2017-11-21
  • 2020-08-30
相关资源
最近更新 更多