Запрос Laravel 5.8 из столбца, содержащего данные json - PullRequest
0 голосов
/ 19 июня 2019

У меня есть столбец, содержащий массив json, но мне трудно вывести их как отдельные элементы.

ListingController @ show

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

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

list.blade.php

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

Выход enter image description here

Ответы [ 2 ]

2 голосов
/ 19 июня 2019

В вашей модели Listing вы можете преобразовать массив json в массив PHP следующим образом:

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

Затем вы можете обернуть это в коллекцию, как вы уже сделали, и перечислить их в представлении.

1 голос
/ 19 июня 2019

Вам нужно преобразовать строку JSON в фактический массив JSON.

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

или вы можете создать метод доступа в вашей модели

public function getServicesOfferedAttribute($value)
{
    return json_decode($value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...