我有三个用户可以上传的文件,但问题是如果没有附加图像,则会抛出一个未定义的变量错误,因为没有传递任何内容,主要问题是附件是通过url定义的,所以当我向它添加一个空值或'',它会引发超时错误。
有没有更好的方法/方法来解决这个问题?
if ($request->file('img_1')) {
$file = $request->file('img_1');
$image_name1 = time()."-".$file->getClientOriginalName();
if ($file->move('uploads/quote', $image_name1)) {
$enquiry->img_1 = $image_name1;
$enquiry->save();
}
}else{
$image_name1 = '';
}
这是我在此之后使用的功能
function ($message) use ($request, $image_name1, $image_name2, $image_name3) {
$name_input = $request['name'];
$company_name = 'Test';
$message->to($sendto_email, '')->from('alerts@testing.com', 'Quote')->subject('New Quote from ' . $name_input )->attach('uploads/quote/' . $image_name1)->attach('uploads/quote/' . $image_name2)->attach('uploads/quote/' . $image_name3);
});
编辑: 它主要是$ message-to part,找到一种不添加的方法 - >如果没有选择特定图像/未设置
答案 0 :(得分:0)
好吧,您可以使用array-variable将其用于避免“未定义的错误”:
$images = [$image_name1, $image_name2, $image_name3];
function ($message) use ($request, $images) {
$name_input = $request['name'];
$company_name = 'Test';
$message->to($sendto_email, '')->from('alerts@testing.com', 'Quote')->subject('New Quote from ' . $name_input);
foreach ($images as $image) {
$message->attach('uploads/quote/' . $image);
}