我正在尝试使用Laravel 5.3中的mailable api向管理员接受的用户发送电子邮件。
class SurveyMail extends Mailable
{
use Queueable, SerializesModels;
public $user;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(User $user)
{
$this->user=$user;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('mail.send')
->from('monsite@chezmoi.com');
}
这是我的控制器
class EmailController extends Controller
{
public function send(Request $request,User $user)
{
Mail::to($user)
->send(new SurveyMail ($request->except('_token')));
}
}
观点:
<body style="background: black; color: white">
<h2>Prise de contact sur mon beau site</h2>
<p>Réception d'une prise de contact avec les éléments suivants :</p>
<ul>
<li><strong>Nom</strong> : {{ $user->name }}</li>
<li><strong>Email</strong> : {{ $user->email }}</li>
</body>
似乎不接受传递给构造函数的参数User
。请问,我该如何解决这个问题?
答案 0 :(得分:3)
在SurveyMail
构建中添加App\
或在其顶部添加use App\User
:
public function __construct(App\User $user)
{
$this->user=$user;
}
然后调用应该是这样的:
Mail::to($user)
->send(new SurveyMail ($user));
答案 1 :(得分:1)
在您的SurveyMail
构造函数中,您已将提示$user
键入User
个对象,但在实例化该类时,您已传递了请求数据,这是一个数组。试试这个
Mail::to($user)->send(new SurveyMail($user));
此外,User
对象没有导入,因此假设您的User
类位于App\Mail
内。它不是。因此,请在您的班级上导入App\User
模型。
use App\User; // <- Add this here
class SurveyMail extends Mailable
此外,在您看来。您忘了关闭ul
代码。
<body style="background: black; color: white">
<h2>Prise de contact sur mon beau site</h2>
<p>Réception d'une prise de contact avec les éléments suivants :</p>
<ul>
<li><strong>Nom</strong> : {{ $user->name }}</li>
<li><strong>Email</strong> : {{ $user->email }}</li>
</ul>
</body>
答案 2 :(得分:0)
你可以做以下哪些对我有用。
在SurveyMail
构造函数中,删除'User'
之前的$user
并使构造函数看起来如下
public function __construct($user)
{
$this->user = $user;
}
这应该可以解决错误。