Laravel helpers.php第533行中的ErrorException:
我正在用laravel 5.4制作一份联系表,我想在有人发送联系表时收到一封电子邮件。我正在使用Mailtrap接收电子邮件 我遇到的问题是,我在提交表单时出现了这个错误 helpers.php第533行中的ErrorException: htmlspecialchars()要求参数1为字符串,对象为给定对象(视图:C:\xampp\htdocs\website\app\Modules\Templates\Resources\Views\email\contact.blade.php) 我的联系功能Laravel helpers.php第533行中的ErrorException:,laravel,laravel-5,Laravel,Laravel 5,我正在用laravel 5.4制作一份联系表,我想在有人发送联系表时收到一封电子邮件。我正在使用Mailtrap接收电子邮件 我遇到的问题是,我在提交表单时出现了这个错误 helpers.php第533行中的ErrorException: htmlspecialchars()要求参数1为字符串,对象为给定对象(视图:C:\xampp\htdocs\website\app\Modules\Templates\Resources\Views\email\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 />
我们已被。。。。
{{$name}}
{{$email}}
{{$subject}}
{{$message}}
您需要在您的cantact函数中添加$subject或将其从cantact.blade.php中删除,请尝试以下代码:
公共功能联系人()
{
$cdata=Input::all();
$crules=数组(
'名称'=>'',
'电子邮件'=>'',
'主题'=>'',
'消息'=>'',
);
$validator=validator::make($cdata$crules);
如果($validator->passes())
{
邮件::发送('templates::emails.contact',$cdata,函数($message){
$message->from(输入::get('email'),输入::get('name');
$message->to($message)info@site.com“,”Info“->主题(“测试联系方式”);
});
会话::flash('成功','您的消息已成功发送');
返回();
}否则{
return back()->withErrors($validator);
}
}
您正在传递保存输入数组的$data
。您需要访问它们,如下所示
更改要传递给的数据
Mail::send('templates::emails.contact', compact('data'), function($message)
将视图代码更改为
{{ $data['name'] }}<br/>
{{ $data['email'] }}<br/>
{{ $data['message'] }}<br/>
{{$data['name']}}
{{$data['email']}}
{{$data['message']}}
您还试图在输入中不可用时访问视图中的主题。能否调试
$data
?添加dd($data)代码>在联系人函数中进行验证之前。您需要保存传递到视图的变量,否则直接输入刀片将无法获取it@Jerodev-当我调试$data
时,我会得到我在表格中输入的信息,即数组:5[▼ “_token”=>“mi35wn4igulefci4xxt80nhkcm2c3esosutkx”“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@Shiva478更新了我的答案。调用send时,将$data
更改为compact('data')
。