我正在重新制作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_name">
...more inputs
</form>
web.php 中的路由转到我的Auth \ RegisterController:
Route::post('/register/basic/create', 'Auth\RegisterController@create')->name('registerbasic');
在我的 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']),
]);
}
但是,当我单击“提交表单”时,出现一个错误,提示没有任何参数传递给create(array $data)
函数:
如何正确获取传递给此函数的表单中的数据?
答案 0 :(得分:3)
使用Request
(Illuminate \ Http \ Request)对象。 Laravel提供Request
类和一组处理请求数据的方法。有关详细信息,您可以检查此https://laravel.com/docs/5.6/requests
public function create(Request $request)
{
$data = $request->all();
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']),
]);
}
注意:在创建数据之前先对其进行验证始终是一件好事,并且还需要在protected $fillable = [];
模型类中为mass assignment指定User
< / p>
答案 1 :(得分:0)
在RegisterController中,使用Illuminate \ Http \ Request。 然后,您可以使用Request对象。
static Stream<Supplier<Sorter>> sorters() {
return Stream.of(BubbleSorter::new, MergeSorter::new, InsertionSorter::new);
}