我允许商家上传图片。一切都保存到数据库中,我唯一需要做的就是检索与business_id匹配的图像:
所以现在我需要浏览business_id,如果匹配,则输出所有图像。
function displayBusiness($id) {
$business = Business::find($id);
$address = Address::find($id);
$session = session()->put('key', $id);
$session = session()->get('key');
$retrieve_gallery = Gallery::where('business_id', '=' ,$session)->firstOrFail();
return view('displayBusiness', compact('business', 'address', 'gallery'));
}
在会话变量中,我正在从业务表中存储业务ID。我想将该会话变量与数据库中的每个business_id匹配,并返回紧凑的“gallery”,以便我可以在视图中使用它的路径:
<img class="images" src="{{ asset($gallery->path) }}" />
但是我得到$ gallery没有定义。怎么能修好?
答案 0 :(得分:1)
使用get()
获取图片集合:
$gallery = Gallery::where('business_id', $id)->get();
然后迭代图像以显示它们:
@foreach ($gallery as $image)
<img class="images" src="{{ asset($image->path) }}" />
@endforeach
答案 1 :(得分:0)
我认为这是因为你在compact()上调用它之前没有创建$ gallery变量。
所以当你这样做时
configurations.compile {
resolutionStrategy.force 'commons4',
}
dependencies {
runtime('commons3')
}
就像在做
compact('business', 'address', 'gallery')
请注意,如果值未定义,compact()将不会发出警告(请参阅紧凑函数的文档,第一个用户贡献说明:http://php.net/manual/fr/function.compact.php#101775)。
因此,$ gallery确实未在您的例子中定义。
将 $ retrieve_gallery 更改为 $ gallery 应该可以解决您提到的特定问题。