如果 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
我发现我无法在 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