亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嘗試在 PHP Laravel 應用程序中獲取非對象的屬性

嘗試在 PHP Laravel 應用程序中獲取非對象的屬性

PHP
慕的地8271018 2023-11-05 15:52:17
我有以下返回數組的查詢    $wines = Wine::all();    //Remove type_id and producer_id    foreach ($wines as $wine) {        $location = $wine->producer->location;    }如果我 echo $wine-> Producer-> location; 這就是我得到的結果;{"city": "Kavadartsi", "address": "29-ти Ноември, бр. 5, Kavadartsi 1430", "country": "Macedonia"}所以我需要的唯一屬性是我嘗試訪問的地址$wine->producer->location->address;但是當我這樣做時,我收到以下錯誤Trying to get property 'address' of non-object如果我將代碼更改為$wine->producer->location['address'];錯誤是:Illegal string offset 'address'
查看完整描述

2 回答

?
白板的微信

TA貢獻1883條經驗 獲得超3個贊

首先這是錯誤的:$wine->producer->location->['address'];,你可能想這樣做$wine->producer->location['address'];。


如果這不起作用,那么查看生產者遷移文件的樣子會有很大幫助,但如果我猜它可能是 json 格式的,就像$table->json('location');. 如果是這種情況,那么您可能需要像這樣鍵入強制轉換該特定字段:


<?php


class Location extends Model

{

    /**

     * The attributes that should be cast.

     *

     * @var array

     */

    protected $casts = [

        'location' => 'array',

    ];

}

完成此操作后,您現在可以像這樣獲取數據:


$wine->producer->location['address'];


查看完整回答
反對 回復 2023-11-05
?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

去掉location后面的箭頭:$wine->producer->location['address'];

如果您收到相同的錯誤,并且數據庫中的位置采用 JSON 格式,請對其進行 json_decode:

$location = json_decode($wine->producer->location, true);
$address = $location['address'];


查看完整回答
反對 回復 2023-11-05
  • 2 回答
  • 0 關注
  • 177 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號