Как отобразить изображения attachMany во внешнем интерфейсе в октябре? - PullRequest
0 голосов
/ 27 марта 2019

Это должно быть довольно просто, но не могу понять, чего не хватает.Я пытаюсь отобразить attachMany во внешнем интерфейсе, но он не работает.

Он отлично работает в фоновом режиме и работает только во фронт-энде, когда я изменяю его на attachOne

    `{% for image in ads.gallery %}
   <img src="{{ image.gallery.thumb(100, auto) }}">
  {% endfor %}`

Я ожидаю, что он отобразит все изображения, загруженные во фронтконец

Ответы [ 2 ]

1 голос
/ 27 марта 2019

В отношении attachOne , Это работает, потому что вы пытаетесь получить галерею даже после использования for loop через {{ image.gallery.thumb(100, auto) }}.

Для attachMany отношения, вам нужно будет сделать что-то вроде этого.

{% for image in ads.gallery %}
   <img src="{{ image.thumb(100, auto) }}">
{% endfor %}

Для получения дополнительной информации посетите эту официальную ссылку документации Здесь.

И, если у вас все еще есть какие-либо сомненияПрокомментируйте, пожалуйста.

РЕДАКТИРОВАТЬ

Таким образом, вы используете этот запрос на странице,

$this['ads'] = Advert::whereHas('cats', function ($query) use ($slug) 
              { 
                 $query->where('slug',$slug); 
              })->get();

Теперь, основываясь на вашем запросе, выизвлекают несколько объявлений на странице, поэтому вам нужно будет написать один цикл для показа ваших объявлений на странице и в цикле для галереи

{% for ad in ads %}
   //to get values from you can do {{ad.name}}
   //to get gallery values from particular ad, you will need to write for loop again(because you have used relation attachMany) 
    {% for image in ad.gallery %}
       <img src="{{ image.thumb(100, auto) }}">
    {% endfor %}
{% endfor %}

И чтобы получить галерею, вы должны использовать нетерпеливая загрузка , поэтому ваш запрос должен быть

$this['ads'] = Advert::with('gallery')->whereHas('cats', function ($query) use ($slug) 
              { 
                 $query->where('slug',$slug); 
              })->get();
1 голос
/ 27 марта 2019

Вам просто нужно удалить галерею из кода ниже, и он будет работать.

<img src="{{ image.thumb(100, auto) }}">
...