Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel helpers.php第533行中的ErrorException:_Laravel_Laravel 5 - Fatal编程技术网

Laravel helpers.php第533行中的ErrorException:

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) 我的联系

我正在用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')