Bog*_*art 5 php laravel-5 laravel-5.1
在Mailer.php中获取ErrorException第33行:尝试获取非对象的属性
我的Mailer.php:
<?php
namespace App\Mailers;
use Illuminate\Contracts\Mail\Mailer as Mail;
abstract class Mailer
{
/**
* @var Mail
*/
protected $mail;
/**
* @param Mail $mail
*/
public function __construct(Mail $mail)
{
$this->mail = $mail;
}
/**
* @param $to
* @param $subject
* @param $from
* @param $view
* @param null $data
*/
public function mailTo($to, $subject, $from, $view, $data = null)
{
$this->mail->send($view, $data, function($message) use ($to, $from, $subject)
{
$message->to($to->email)->subject($subject)->from($from);
});
}
}
Run Code Online (Sandbox Code Playgroud)
我的SiteMailer.php扩展了我的Mailer.php抽象类
<?php
namespace App\Mailers;
class SiteMailer extends Mailer
{
/**
* @param $data
*/
public function sendEmailMessageToSupport($data)
{
$from = env('MAIL_NOREPLY', 'SUPPORT');
$to = env('MAIL_NOREPLY', 'SUPPORT');
$subject = 'Activate Your Account';
$view = 'auth.emails.support';
$this->mailTo($to, $subject, $from, $view, $data);
}
}
Run Code Online (Sandbox Code Playgroud)
还有我的SupportController.php
<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use App\Mailers\SiteMailer;
use App\Http\Controllers\Controller;
use App\Http\Requests\SupportRequest;
class SupportController extends Controller
{
public function create()
{
return view('pages.support');
}
public function store(SupportRequest $request, SiteMailer $mail)
{
$mail->sendEmailMessageToSupport($request->all());
return redirect()->back()->with('alert-success', 'Thanks for contacting us!');
}
}
Run Code Online (Sandbox Code Playgroud)
我的SupportRequest FormRequest
<?php
namespace App\Http\Requests;
use App\Http\Requests\Request;
class SupportRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required',
'email' => 'required|email',
'message_content' => 'required',
];
}
}
Run Code Online (Sandbox Code Playgroud)
然后是电子邮件视图
<p>
A prospective customer named {{ $name }} <small>{{ $email }}</small>
has submitted an inquiry through Our Site.
</p>
<p>
{{ $message_content }}
</p>
Run Code Online (Sandbox Code Playgroud)
找不到问题所在.
我建议问题出在这里:
$message->to(**$to->email**)->subject($subject)->from($from);
Run Code Online (Sandbox Code Playgroud)
这$to是一个电子邮件地址的字符串,由此判断:
$to = env('MAIL_NOREPLY', 'SUPPORT');
Run Code Online (Sandbox Code Playgroud)
因此,只需删除该->email位,因为字符串没有属性/属性,例如:
$message->to($to)->subject($subject)->from($from);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3003 次 |
| 最近记录: |