Laravel 5.8从包含JSON数据的列查询

时间:2019-06-19 08:38:09

标签: php laravel

我有一列包含一个json数组,但是我很难将它们作为单个项目输出。

ListingController @ show

public function show(Listing $listing)
{
    $services = collect($listing->services_offered);

    return view('listings.listing', compact('banner', 'listing', 'services'));
} 

listing.blade.php

@foreach($services as $service)
    <li>{{$service}}</li>
@endforeach

输出 enter image description here

2 个答案:

答案 0 :(得分:2)

在您的Listing模型中,可以将json数组转换为如下所示的PHP数组:

protected $casts = [
    'services_offered' => 'array',
];

然后,您可以像已经将其包装到集合中一样,并在视图中列出它们。

答案 1 :(得分:1)

您需要将JSON字符串转换为实际的JSON数组。

$services = collect(json_decode($listing->services_offered, true));

或者您可以在模型中创建访问器

public function getServicesOfferedAttribute($value)
{
    return json_decode($value);
}