Laravel - Eloquent - получить заданное значение c из возвращаемого массива. - PullRequest
2 голосов
/ 28 марта 2020

У меня следующий код:

     <div class="col-8
                    offset-2
                    mb-5
                    p-3
                    rounded-lg
                    shadow
                    d-flex
                    justify-content-between
                    align-items-baseline"
             style="background-color: lightgrey;
                 background-image: linear-gradient(to right, rgba(211, 211, 211, 0.52), rgba(211, 211, 211, 0.73)), url('/images/social_{{$gallery->photos->first()}}');  ">

часть кода $gallery->photos->first() возвращает:

{"id":3,"gallery_id":1,"filename":"IMG_3700.png","filesize":4229181,"delete":0,"created_at":"2020-03-28T09:56:31.000000Z","updated_at":"2020-03-28T09:56:31.000000Z"}

Мне нужно получить доступ к имени файла .. Я попробовал несколько вещей , но ни один из них не сработал:

$gallery->photos->first('filename')
$gallery->photos->first()->get('filename')
$gallery->photos->first()['filename']
$gallery->photos->first()->filename

последняя попытка ($gallery->photos->first()->filename) вернула эту ошибку:

Facade\Ignition\Exceptions\ViewException Trying to get property 'filename' of non-object (View: C:\xampp\htdocs\galshare\resources\views\home.blade.php)

как получить доступ к возвращенному имени файла?

Спасибо

1 Ответ

2 голосов
/ 29 марта 2020

После некоторого разговора об этой проблеме мы пришли к выводу, что $gallery иногда возвращает пустой набор, из-за которого правило CSS злилось (отсутствие URL-адреса изображения в правиле background-image). Это было решено с помощью одного php блока впереди, где был бы установлен URL-адрес изображения по умолчанию (резервный):

@php
$filename = '/path/to/default.jpg';
if ($gallery->isNotEmpty() && $gallery->photos->isNotEmpty()) {
    $filename = $gallery->photos->first()->filename;
}
@endphp
<style>
...
</style>

Этот блок кода также можно выполнить в контроллере, откуда можно отправить $filename (т.е. ) переменная со значением $gallery->photos->first()->filename || '/path/to/fallback.jpg'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...