【问题标题】:Access to a sub-property in Laravel 7访问 Laravel 7 中的子属性
【发布时间】:2020-11-07 01:02:59
【问题描述】:

在 Laravel 上,我从一个查询中得到了答案:

{
"id": 19,
"skin_id": 13,
"skin_payment_provider_id": 16,
"payment_method_id": 24,
"rank": 1,
"is_visible": 1,
"is_enabled": 1,
"created_at": "2020-07-16T10:09:51.000000Z",
"updated_at": "2020-07-16T10:09:51.000000Z",
"deleted_at": null,
"laravel_through_key": 13,
"payment_provider": {
    "id": 5,
    "parent_id": null,
    "name": "Paypal",
    "slug": "paypal",
    "thumb": null,
    "is_enabled": true,
    "options": null,
    "percentage": null,
    "rank": 1,
    "created_at": "2020-07-16T08:47:49.000000Z",
    "updated_at": "2020-07-16T08:47:49.000000Z",
    "deleted_at": null,
    "laravel_through_key": 16
}

}

我可以毫无问题地访问这些属性,例如:

$result->payment_method_id 或 $result->skin_id 等,但我无法访问属性 $result->payment_provider!

如果我调用 return $result,我会看到上面给出的答案,但如果我调用 $result->payment_provider,我的答案是空的。 我试图通过 Arr::get() 打电话,但它总是一样的...... 我错过了什么?

谢谢

【问题讨论】:

  • 正确、准确显示您正在做的事情的示例代码,而不是给我们这些模糊的口头描述。 “但是如果我调用 $result->payment_provider” - “调用”应该是什么意思?您尝试在什么情况下使用它?
  • 我在控制器中使用它,奇怪的是所有结果都是可见的,但我无法访问 payment_provider 属性

标签: php laravel eloquent response


【解决方案1】:

不确定如何将 json 转换为数组..

我猜您的支付提供商被转换为数组而不是对象

$result->payment_provider['id']; or $result['payment_provider']['id']

像 dd($result) 一样倾倒它 或 print_r($result)

将帮助您了解 var 中的内容。

【讨论】:

  • 是的,我试过了,但答案是:“消息”:“尝试访问 null 类型值的数组偏移量”。如果我尝试使用 $ result['payment_provider'] 答案是空的
  • 我无法尝试 dd (),因为它是对具有双重身份验证的微服务的调用,我正在使用邮递员进行调用
  • 正如其他人所建议的那样,向我们展示您上面的示例如何成为 php 变量。这实际上表明它的值为 NULL..
  • 如果不能使用 dd,试试 Log::error(print_r($var, true));并检查您的日志文件。或者考虑使用 laravel 望远镜,或者 Xdebug
  • with print_r($response) 我有同样的反应
猜你喜欢
  • 2019-02-21
  • 1970-01-01
  • 1970-01-01
  • 2022-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-14
  • 2019-03-09
相关资源
最近更新 更多