laravel显示匹配business_id的路径

时间:2017-06-08 14:21:43

标签: laravel laravel-5

我允许商家上传图片。一切都保存到数据库中,我唯一需要做的就是检索与business_id匹配的图像:

enter image description here

所以现在我需要浏览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没有定义。怎么能修好?

2 个答案:

答案 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 应该可以解决您提到的特定问题。