【问题标题】:How to access nested json objects without json_decoding the collection如何在没有 json_decoding 集合的情况下访问嵌套的 json 对象
【发布时间】:2019-03-18 17:28:22
【问题描述】:

我有以下数据结构:

[
   {
      "id": 1,
      "customer_id": "11",
      "customer_name": "Vic",
      "cheque_withdraw": {
         "id": 2,
         "request_date", "2019-03-30"
      }
   }
]

我通过以下代码从多个表中获取了这些数据;

$paginator = Cheque::with(['chequeWithdraw' => function($query){
        $query->where('withdraw_status' , 'withdrawn');
    }])
    ->paginate(5);

如何访问嵌套的 json 对象 request_date 而无需将我的集合转换为关联数组?我不想将集合转换为关联数组的原因是因为我在对已被 json 解码的数据进行分页时遇到了挑战。 我目前正在尝试以这种方式访问​​刀片文件中的 request_date;

@foreach($paginator as $cheque)
   {{ $cheque->cheque_withdraw->request_date }}
@endforeach

但是,我收到以下错误;

Trying to get property 'request_date' of non-object

【问题讨论】:

  • 如果您尝试在 foreach 中使用 print_r($cheque);die();,您会得到什么?
  • @pr1nc3 我正在获取我使用的两个模型的对象。 Check 模型和 ChequeWithdraw 模型。结果太长了,不然我就贴在这里给你看
  • 那你能告诉我你把数据返回到视图的代码吗?

标签: laravel laravel-blade


【解决方案1】:

实际上你有chequeWithdraw而不是cheque_withdraw

@foreach($paginator as $cheque)
   {{ $cheque->chequeWithdraw->request_date  ?? 'NA'}}
@endforeach

您可能正在尝试将 laravel 集合转换为 json 或数组。 laravel 将 camel case 转换为 snake case 。所以你得到的是 json 而不是 laravel 模板。

【讨论】:

  • 感谢您的回答。它工作得很好。请向我解释为什么该对象是 chequeWithdraw 而不是 json 中的 cheque_withdraw?
  • @gerry:您可能正在尝试将 laravel 集合转换为 json 或数组。 laravel 将 camel case 转换为 snake case 。所以你得到的是 json 而不是 laravel 模板。
猜你喜欢
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
  • 2010-11-25
相关资源
最近更新 更多