Php Laravel表单未向控制器传递数据
我正在Laravel安装中重新创建默认注册页面,并具有以下格式:Php Laravel表单未向控制器传递数据,php,laravel,authentication,routes,Php,Laravel,Authentication,Routes,我正在Laravel安装中重新创建默认注册页面,并具有以下格式: <form method="POST" class="uk-form-horizontal uk-margin-large" action="{{ route('registerbasic') }}"> @csrf <input class="uk-input" id="form-horizontal-text" type="text" placeholder="e.g. Jane" name="first_
<form method="POST" class="uk-form-horizontal uk-margin-large" action="{{ route('registerbasic') }}">
@csrf
<input class="uk-input" id="form-horizontal-text" type="text" placeholder="e.g. Jane" name="first_name">
...more inputs
</form>
在我的RegisterController@create,我有:
protected function create(array $data)
{
return User::create([
'firstname' => $data['first_name'],
'lastname' => $data['last_name'],
'province' => $data['province'],
'postal_code' => $data['postal_code'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
但是,当我单击submit form(提交表单)时,我收到一个错误,提示没有参数被传递到create(array$data)
函数:
如何正确获取传递到此函数的表单中的数据?使用Request
(照亮\Http\Request)对象。Laravel提供了Request
类和一组处理请求数据的方法。有关详细信息,请查看此
注意:在创建数据之前验证数据总是好的,并且您还需要指定protected$filleble=[]
在User
模型类中,使用Request
(照亮\Http\Request)对象。Laravel提供了Request
类和一组处理请求数据的方法。有关详细信息,请查看此
注意:在创建数据之前验证数据总是好的,并且您还需要指定
protected$filleble=[]在注册表控制器中的用户
模型类中,使用照亮\Http\Request。
然后可以使用请求对象
public function create(Request $request){
return User::create([
'firstname' => $request->first_name,
'lastname' => $request->last_name,
'province' => $request->province,
'postal_code' => $request->postal_code,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
}
在RegisterController中使用Illumb\Http\Request。
然后可以使用请求对象
public function create(Request $request){
return User::create([
'firstname' => $request->first_name,
'lastname' => $request->last_name,
'province' => $request->province,
'postal_code' => $request->postal_code,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
}
再次感谢你,rkj。您是否介意解释一下为什么开箱即用的创建方法使用数组而不是请求对象?因为这显然也行,但是当我编辑表单时,我现在不得不将其更改为请求object@Vranvs更新的答案与链接,尝试它,让我知道如果你有任何疑问再次谢谢你rkj。您是否介意解释一下为什么开箱即用的创建方法使用数组而不是请求对象?因为这显然也行,但是当我编辑表单时,我现在不得不将其更改为请求object@Vranvs更新的答案与链接,尝试它,让我知道如果你有任何疑问
public function create(Request $request){
return User::create([
'firstname' => $request->first_name,
'lastname' => $request->last_name,
'province' => $request->province,
'postal_code' => $request->postal_code,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
}