【发布时间】:2017-10-23 08:28:38
【问题描述】:
我正在使用 laravel 5.4 制作联系表格,我想在有人发送联系表格时收到一封电子邮件。我正在使用 Mailtrap 接收电子邮件。
我遇到的问题是提交表单时出现此错误。
helpers.php 第 533 行中的错误异常: htmlspecialchars() 期望参数 1 是字符串,给定对象(视图:C:\xampp\htdocs\website\app\Modules\Templates\Resources\Views\emails\contact.blade.php)
我的联系方式
public function contact()
{
$data = Input::all();
$rules = array(
'name' => '',
'email' => '',
'message' => '',
);
$validator = Validator::make($data, $rules);
if($validator->passes())
{
Mail::send('templates::emails.contact', $data, function($message){
$message->from(Input::get('email'), Input::get('name'));
$message->to('info@site.com', 'Info')->subject('Testing contact form');
});
Session::flash('success', 'Your message has been sent successfully.');
return back();
}else{
return back()->withErrors($validator);
}
}
还有我的contact.blade.php,这是发送给我的信息
<h1>We been contacted by.... </h1>
{{ $name }}<br />
{{ $email }}<br />
{{ $subject }}<br />
{{ $message }}<br />
【问题讨论】:
-
你能调试
$data吗?在联系功能验证前添加dd($data);。 -
你需要保存你传递给视图的变量,否则直接输入刀片不会得到它
-
@Jerodev - 当我调试
$data时,我得到了我在表单中输入的信息array:5 [▼ "_token" => "mI35WN4IGUlefCi4XXT80nhKcM2Cc3esosFtUTKX" "name" => "test name" "email" => "email@gmail.com" "subject" => "test" "message" => "drgrg" ] -
@Exprator - 这不是
$data在Mail::send(('templates::emails.contact', $data, function($message)行中所做的,它抓取数据并将其传递给contact.blade.php -
@Shiva478 那么你需要传递 $data['name'] 而不是 $name