我有一个提交表单,我想把它发送给我的RegisterController,但我得到了这个错误""App/Http/Controllers/Auth/RegisterController::create()函数参数太少,0个已通过,预期正好1个"" 创建方法需要一个数组,如何将我的请求转换成数组?
表单:
<form method="POST" action="{{ route('posting') }}">
@csrf....and so on
routes.methods of RegisterController.php:
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
类来实际发送表单数据到你的控制器。你的方法是,没有数据被发送至 create()
方法,因此出现错误。编辑你的 create()
方法到此。
protected function create(Request $data)
并在顶部导入Request类。
use Illuminate\Http\Request;
阅读更多信息,请访问官方 文件.
EDIT:
要在保存数据后重定向到一个特定的页面,将你的返回语句改为这样。
return redirect()->back();
这将使你返回到前一页。你也可以在这里添加任何你想重定向的路径。
return redirect()->rote('route.name');