【问题标题】:laravel displaying path which matches business_idlaravel 显示与 business_id 匹配的路径
【发布时间】:2017-11-10 07:46:02
【问题描述】:

我允许商家上传图片。一切都保存到数据库中,我唯一需要做的就是检索与 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 匹配并返回紧凑的“画廊”,以便我可以在视图中使用它的路径:

<img class="images" src="{{ asset($gallery->path) }}" />

但是我得到 $gallery 没有定义。怎么解决?

【问题讨论】:

  • 你期望什么,画廊没有在任何地方定义

标签: laravel laravel-5


【解决方案1】:

使用get() 获取图片集合:

$gallery = Gallery::where('business_id', $id)->get();

然后遍历图像以显示它们:

@foreach ($gallery as $image)
    <img class="images" src="{{ asset($image->path) }}" />
@endforeach

【讨论】:

    【解决方案2】:

    我认为这是因为您在使用 compact() 调用 $gallery 变量之前没有创建它。

    所以当你这样做时

    compact('business', 'address', 'gallery') 
    

    就像在做

    ['business' => $business, 'address' => $address];
    

    请注意,如果值未定义,compact() 不会发出警告(请参阅 compact 函数的文档,第一个用户贡献说明:http://php.net/manual/fr/function.compact.php#101775)。

    因此,您的示例中确实未定义 $gallery。

    因此,将 $retrieve_gallery 更改为 $gallery 应该可以解决您提到的特定问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-09
      • 2018-12-23
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多