【问题标题】:If more than 1 image file exists in Laravel Model如果 Laravel 模型中存在超过 1 个图像文件
【发布时间】:2017-10-25 02:22:09
【问题描述】:

我发现如果我将它们放在控制器中,我无法使用 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

非常感谢!

【问题讨论】:

    标签: laravel model return assets file-exists


    【解决方案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
    

    【讨论】:

    • 嗨,这个也可以,但我最终对 3 张不同的图片使用了 3 个函数,而且效果也很好.. 抱歉回复晚了,感谢您的宝贵时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多