这应该很简单,但无法找出缺少的内容。我正在尝试在前端显示attachMany,但它不起作用。
它在后端工作正常,仅当我将其更改为attachOne时才在前端工作
`{% for image in ads.gallery %}
<img src="{{ image.gallery.thumb(100, auto) }}">
{% endfor %}`
我希望它显示在前端图库中上传的所有图像
答案 0 :(得分:1)
您只需要从下面的代码中删除图库,即可使用。
sum = from;
答案 1 :(得分:1)
在关系 attachOne 中,这是有效的,因为即使通过for loop
使用{{ image.gallery.thumb(100, auto) }}
,您仍试图获取图库。
对于 attachMany 关系,您需要执行以下操作。
{% for image in ads.gallery %}
<img src="{{ image.thumb(100, auto) }}">
{% endfor %}
有关更多信息,请访问此官方文档链接Here.
而且,如果您仍然有任何疑问,请发表评论。
编辑
因此您正在页面上使用此查询,
$this['ads'] = Advert::whereHas('cats', function ($query) use ($slug)
{
$query->where('slug',$slug);
})->get();
现在,根据您的查询,您正在页面上检索多个 广告,因此您需要编写一个for循环广告才能在页面上展示并循环进入画廊
{% 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 %}
要检索图库,您应该使用eager loading,因此您的查询应该是
$this['ads'] = Advert::with('gallery')->whereHas('cats', function ($query) use ($slug)
{
$query->where('slug',$slug);
})->get();