如果 Laravel 模型中存在超过 1 个图像文件

If more than 1 image file exists in Laravel Model

我发现我无法在 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.jpg10_2.jpg10_3.jpg

非常感谢!

我假设在你的对象中,可能是 Hostpital,你存储这些文件名或 ID,所以你可以只 return 一个 ID 数组或更简单,return 医院对象,然后在你的控制器中你应该这样做:

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