laravel get获取jsonObject值时出现非法字符串偏移错误

问题描述 投票:0回答:2

在这个结果中

{#457 ▼
  +"id": 14
  +"amount": "110092"
  +"discount": 0
  +"images": "{"images":{"original":"\/uploads\/post_images\/2017\/1513070310.jpeg","300":"\/uploads\/post_images\/2017\/300_1513070310.jpeg","600":"\/uploads\/post_images\/2017\/600_1513070310.jpeg","900":"\/uploads\/post_images\/2017\/900_1513070310.jpeg"},"thumbnail":"\/uploads\/post_images\/2017\/300_1513070310.jpeg"} ◀"
  +"created_at": "2017-12-28 17:48:48"
  +"updated_at": "2017-12-28 19:24:18"
}

查询,我想从thumbnailimages的图像列中获取JsonObject,但是我收到此错误:

"Illegal string offset 'thumbnail'"

我的代码:

$userShoppings = \DB::table('payments as s')
    ->join('products as p', 's.product_id', '=', 'p.id')
    ->select('p.*', 's.*',\DB::raw('s.ordering_count * s.price as cost'))
    ->whereUserId(auth()->user()->id)
    ->first();

dd($userShoppings->images['thumbnail']);

要么

dd($userShoppings->images['images']['thumbnail']);

错误:

"Illegal string offset 'images'"

我的模特:

class Shopping extends Model
{
    protected $fillable = [];

    protected $casts=[
        'images'=>'array'
    ];
}

class Payment extends Model
{
    protected $fillable = [];

    protected $casts=[
        'images'=>'array'
    ];
}
laravel laravel-5
2个回答
1
投票

您需要将$userShoppings->images转换为json或数组才能使用它


0
投票

这是一个JSON对象,尝试:

 $userShoppings->images.thumbnail
© www.soinside.com 2019 - 2024. All rights reserved.