Laravel - 电子邮件附件未定义变量

时间:2017-03-31 10:35:18

标签: php laravel

我有三个用户可以上传的文件,但问题是如果没有附加图像,则会抛出一个未定义的变量错误,因为没有传递任何内容,主要问题是附件是通​​过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,找到一种不添加的方法 - >如果没有选择特定图像/未设置

1 个答案:

答案 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);
    }