【发布时间】:2017-04-17 17:21:42
【问题描述】:
我正在尝试使用 Laravel 5.3 在 Laravel 中创建一个联系表单,但我在这里遇到了这个令人讨厌的错误:
helpers.php 第 519 行中的错误异常: htmlspecialchars() 期望参数 1 是字符串,给定对象(查看:/Applications/XAMPP/xamppfiles/htdocs/meps/resources/views/emails/contactemail.blade.php)
这是我使用的文件:
联系表格
<div class="contact-form">
<form class="margin-clear" role="form" action="{{ url('/sendmail') }}" method="POST">
{{ csrf_field() }}
<div class="form-group has-feedback">
<label for="name">Name*</label>
<input type="text" class="form-control" id="name" name="name" placeholder="">
<i class="fa fa-user form-control-feedback"></i>
</div>
<div class="form-group has-feedback">
<label for="email">Email*</label>
<input type="email" class="form-control" id="email" name="email" placeholder="">
<i class="fa fa-envelope form-control-feedback"></i>
</div>
<div class="form-group has-feedback">
<label for="subject">Subject*</label>
<input type="text" class="form-control" id="subject" name="subject" placeholder="">
<i class="fa fa-navicon form-control-feedback"></i>
</div>
<div class="form-group has-feedback">
<label for="message">Message*</label>
<textarea class="form-control" rows="6" id="message" name="message" placeholder=""></textarea>
<i class="fa fa-pencil form-control-feedback"></i>
</div>
<input type="submit" value="Submit" class="btn btn-primary">
</form>
</div>
控制器功能
public function sendmail(Request $request, Mailer $mail) {
$mail->to('kaley36_aw@yahoo.com')->send(new ContactEmail($request->name, $request->email, $request->subject, $request->message));
$request->session()->flash('mail-sent', 'Your email has been sent.');
return redirect('/contact');
}
Mailable 类
class ContactEmail extends Mailable
{
use Queueable, SerializesModels;
public $name;
public $email;
public $subject;
public $message;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($name, $email, $subject, $message)
{
$this->name = $name;
$this->email = $email;
$this->subject = $subject;
$this->message = $message;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from($this->email)->view('emails.contactemail');
}
}
这是路线
Route::post('sendmail', 'EmailController@sendmail');
【问题讨论】:
-
看起来您在
contactemail.blade.php文件的某处有一个对象包裹在{{ }}中。您只想在其中放置字符串(或具有__toString魔术方法的对象)。 -
这是实际的电子邮件模板contactemail.blade.php
标签: laravel email laravel-5.3