Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel4:将文件附加到邮件的问题_Laravel_Laravel 4_Sendmail - Fatal编程技术网

Laravel4:将文件附加到邮件的问题

Laravel4:将文件附加到邮件的问题,laravel,laravel-4,sendmail,Laravel,Laravel 4,Sendmail,我制作了一个简单的应用程序,在一个用户注册后,一封欢迎邮件被发送到他的地址。 一切正常。 但是,当我尝试将文件附加到邮件(在本例中为徽标)时,页面开始加载并。。永不结束。不要发邮件。 你知道为什么会这样吗 以下是Mailer抽象类: <?php namespace Mailers; class InvalidContactInfoException extends \Exception {} abstract class Mailer { public $to; pu

我制作了一个简单的应用程序,在一个用户注册后,一封欢迎邮件被发送到他的地址。 一切正常。 但是,当我尝试将文件附加到邮件(在本例中为徽标)时,页面开始加载并。。永不结束。不要发邮件。 你知道为什么会这样吗

以下是Mailer抽象类:

<?php
namespace Mailers;
class InvalidContactInfoException extends \Exception {} 

abstract class Mailer {
    public  $to;
    public  $email;
    public  $subject;
    public  $view;
    public  $data;
    public  $options;

    public function __construct($user)
    {
        if(!is_object($user))
        {
            throw new InvalidContactInfoException('Please pass a valid user object');
        }

        $this->data = $user->toArray();
        $this->to = $user->username;
        $this->email = $user->email;
    }


    public function deliver()
    {
        $self = $this;
        return \Mail::send($this->view, $this->data, function($message) use($self)
        {
            $message->to($self->email, $self->to)->subject($self->subject);
            if(is_callable($self->option))
            {
                call_user_func($self->option, $message);
            }
        });
    }

}

你可能会发现这是因为你需要
$this->options
而不是
$this->option
。在
public_path()之后可能还需要一个正斜杠如下所示:

$this->options = function($message)
{
 $message->attach(public_path().'/img/logo.gif');
};

$message->attach()
,您是从哪里获得
attach()
方法的?它是在哪里定义的?我在Jeffrey Way教程中找到的。这应该是一种快捷的方法。我没有收到任何错误,但它开始加载,而且从未完成。。
$mailer = new Mailers\UserMailer($user);

// var_dump($mailer);

$mailer->welcomeMail()->deliver();

$user->save();
$this->options = function($message)
{
 $message->attach(public_path().'/img/logo.gif');
};