如果Laravel模型中存在多个图像文件

时间:2017-10-25 02:22:10

标签: laravel model return assets file-exists

我发现如果我将它们放在控制器中,我就无法在file_exists中使用资源,这就是我在模型中使用它们的原因。无论如何,在我的代码中我需要输出3张不同的图片,如果每张图片都可用。

这是我目前的代码

if(File::exists( public_path().'/image/hospitals/' .$this->HospitalID . '.jpg')){
            return asset('/image/hospitals/' .$this->HospitalID . '.jpg');
        }  else {
            return asset('/image/hospitals/default.jpg');
        }

现在这段代码只能输出1张图片,如果图片不可用则默认输出。我的问题是,我如何输入3张图片? 我的3个图像的文件名是:

[HospitalID] _1.jpg [HospitalID_2] .jpg [HospitalID_3] .jpg

例如,

10_1.jpg 10_2.jpg 10_3.jpg

非常感谢!

1 个答案:

答案 0 :(得分:1)

我假设在您的对象中,可能是Hostpital,您存储这些文件名或ID,因此您可以返回一个ID数组甚至更简单,返回医院对象,然后在您的控制器中,您应该执行以下操作:

class HospitalController extends Controller {
    // some code
    public function method_name($id) {
        $hospital = Hospital::find($id);
        // some other stuff
        return view('name_of_view')->withHospital($hospital);
}

然后在你看来你可以这样做:

        @foreach ($hospital->images as $image_id)
        <img src={{ public_path() . '/image/hospitals/' . $image_id ".jpg" }} />
        @endforeach