在 laravel 7 中将提交表单传递给控制器
Passing submit form to controller in laravel 7
我有一个要发送到我的 RegisterController 的提交表单,但我收到了这个错误
“"Too few arguments to function App\Http\Controllers\Auth\RegisterController::create(), 0 passed and exactly 1 expected"”
创建方法需要一个 array.How 来将我的请求转换为数组?
表格:
<form method="POST" action="{{ route('posting') }}">
@csrf....and so on
路线:
Route::get('administration/register', function () {
return view('vregister');
})->name('registration');
Route::post('/insert','Auth\RegisterController@create')->name('posting');
RegisterController.php的方法
protected function create(array $data)
{
$user= User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$role=Role::select('id')->where('name','Support')->first(); //??
$user->roles()->attach($role);
return $user;
}
您在创建方法中使用了错误的实例。使用表单时,您应该使用 Request
class 将表单数据实际发送到您的控制器。按照您的方式,没有数据被发送到 create()
方法,因此出现错误。将您的 create()
方法编辑为:
protected function create(Request $data)
并在顶部导入请求 class:
use Illuminate\Http\Request;
在官方阅读更多documentation
.
编辑:
要在保存数据后重定向到特定页面,请将您的 return 语句更改为:
return redirect()->back();
这将 return 您返回到上一页。您还可以在此处添加您希望重定向到的任何路线:
return redirect()->rote('route.name');
我有一个要发送到我的 RegisterController 的提交表单,但我收到了这个错误 “"Too few arguments to function App\Http\Controllers\Auth\RegisterController::create(), 0 passed and exactly 1 expected"” 创建方法需要一个 array.How 来将我的请求转换为数组?
表格:
<form method="POST" action="{{ route('posting') }}">
@csrf....and so on
路线:
Route::get('administration/register', function () {
return view('vregister');
})->name('registration');
Route::post('/insert','Auth\RegisterController@create')->name('posting');
RegisterController.php的方法
protected function create(array $data)
{
$user= User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
$role=Role::select('id')->where('name','Support')->first(); //??
$user->roles()->attach($role);
return $user;
}
您在创建方法中使用了错误的实例。使用表单时,您应该使用 Request
class 将表单数据实际发送到您的控制器。按照您的方式,没有数据被发送到 create()
方法,因此出现错误。将您的 create()
方法编辑为:
protected function create(Request $data)
并在顶部导入请求 class:
use Illuminate\Http\Request;
在官方阅读更多documentation .
编辑:
要在保存数据后重定向到特定页面,请将您的 return 语句更改为:
return redirect()->back();
这将 return 您返回到上一页。您还可以在此处添加您希望重定向到的任何路线:
return redirect()->rote('route.name');