Email Laravel Mailable |->;发件人($this->;input->;mail)
我创建了一个Email Laravel Mailable |->;发件人($this->;input->;mail),email,laravel-5.6,Email,Laravel 5.6,我创建了一个 php artisan make:mail ContactFormFilledOut 这很有效。但我唯一的问题是,我无法访问用户邮件以将其插入 ->来自('users-mail') 我试图通过这样做来获得用户的邮件 $this->input->mail 但是我得到了错误 尝试获取非对象的属性“mail” 所以我也试着去做 $this->输入['mail']。 这也无济于事 public function build() { return $this-&g
php artisan make:mail ContactFormFilledOut
这很有效。但我唯一的问题是,我无法访问用户邮件以将其插入
->来自('users-mail')
我试图通过这样做来获得用户的邮件
$this->input->mail
但是我得到了错误
尝试获取非对象的属性“mail”
所以我也试着去做
$this->输入['mail']
。
这也无济于事
public function build()
{
return $this->view('mail.kontaktform')
->from($this->input->mail) // HERE IS THE ISSUE
->subject('Test subject');
}
这里有所有的代码
class ContactFormFilledOut extends Mailable
{
use Queueable, SerializesModels;
public $input;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($input)
{
$this->input = $input;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('mail.kontaktform')
->from($this->input->mail) // HERE IS THE ISSUE
->subject('Test subject');
}
}
您可以指定希望Laravel在构造函数中注入的数据,在这种情况下,您希望能够访问假定是该电子邮件发件人的用户的电子邮件地址。你可以这样做
use App\User;
class ContactFormFilledOut extends Mailable
{
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
/* ... */
}
Laravel将自动注入经过身份验证的用户,并将其保存在邮件的属性user
中
你有这个问题,因为当你在邮件的构造函数中添加$input
作为参数时,Laravel不知道要注入哪个对象
但是您可以克服的是,您可以实例化mailable并传入$input
,它可以是您想要的任何东西
$mailable = new ContactFromFilledOut($some_data);
$user = User::find(1);
Mail::to($user)
->send($mailable);