enter image description here我在php laravel中有一个以下Controller:
(value: boolean) => void
我使用以下路线:
// .....
class RegisterController extends Controller
{
//...
//...
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}
我收到以下错误:“函数App \ Http \ Controllers \ Auth \ RegisterController :: create()的参数太少,传递了0个且恰好期望有1个”
我需要您的帮助才能将Request参数传递到我的函数中(正确路由)
答案 0 :(得分:1)
尝试将您的方法参数更改为Request $ request
通过依赖关系获取当前HTTP请求的实例 注入,您应该在
Illuminate\Http\Request
类上键入提示 您的控制器方法。传入请求实例将 由服务容器自动注入
并从请求字段中获取数据:
protected function create(Illuminate\Http\Request $request)
{
return User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
}
如果您不想在method参数中写入所有Request
命名空间,请在文件顶部添加:
use Illuminate\Http\Request;
然后,只需使用类的名称:
protected function create(Request $request)
{
//...
}
答案 1 :(得分:1)
您可以通过这种方式完成
use Illuminate\Http\Request;
class RegisterController extends Controller
{
protected function create(Request $request)
{
$data = $request->all();
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}