我正在开发一个网站,在Laravel尝试发送邮件之后。我收到一条错误消息:
非静态方法 Illuminate\Mail\Mailer::send() 不应静态调用,假设$this来自不兼容的上下文
我的代码:
Mail::send('emails.kontakt', array('name' => 'Elvis'), function($message)
{
$message->to('edautovic99@gmail.com', 'Elvis')->subject('edautovic99@gmail.com');
});
如果您使用的是 Mail::send()
,那么您必须在app/config/app.php
配置文件中有一个别名。签出该文件并查找别名数组,如下所示:
'aliases' => array(
'App' => 'IlluminateSupportFacadesApp',
'Artisan' => 'IlluminateSupportFacadesArtisan',
// ...
)
确保别名Mail
位于该数组中。它应该指向IlluminateSupportFacadesMail
立面。
所以你的别名数组应该看起来像这样:
'aliases' => array(
'App' => 'IlluminateSupportFacadesApp',
'Artisan' => 'IlluminateSupportFacadesArtisan',
// ...
'Mail' => 'IlluminateSupportFacadesMail',
// ...
)
在前面
加上反斜杠以确保您使用的是外观:
Mail::send('emails.kontakt', array('name' => 'Elvis'), function($message) {
$message->to('edautovic99@gmail.com', 'Elvis')
->subject('edautovic99@gmail.com');
});
否则,如果您不想使用外观,最好在构造函数中注入邮件程序
<?php namespace AppSomeNamespace;
use IlluminateContractsMailMailer;
class MyClass
{
private $mailer;
public function __construct(Mailer $mailer)
{
$this->mailer = $mailer;
}
public function doMyMailThing()
{
$this->mailer->send('emails.kontakt', array('name' => 'Elvis'), function($message) {
$message->to('edautovic99@gmail.com', 'Elvis')
->subject('edautovic99@gmail.com');
});
}
}