Laravel post请求路由
我在php laravel中有一个以下控制器:Laravel post请求路由,laravel,parameters,controller,routes,arguments,Laravel,Parameters,Controller,Routes,Arguments,我在php laravel中有一个以下控制器: // ..... class RegisterController extends Controller { //... //... protected function create(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'
// .....
class RegisterController extends Controller
{
//...
//...
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
}
我采用以下路线:
Route::post('api/auth/register', 'Auth\RegisterController@create');
我收到以下错误:“函数App\Http\Controllers\Auth\RegisterController::create()的参数太少,已传递0,预期正好是1”
我需要您的帮助将请求参数传递给我的函数(正确的表单路由)尝试将方法参数更改为$Request 通过依赖关系获取当前HTTP请求的实例 注入时,您应该在 您的控制器方法。传入的请求实例将 由服务容器自动注入 并从请求字段中获取数据:
protected function create(Illuminate\Http\Request $request)
{
return User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
}
如果不想在方法参数中写入所有请求
命名空间,请在文件顶部添加:
use Illuminate\Http\Request;
然后,只需使用类的名称:
protected function create(Request $request)
{
//...
}
你可以这样做
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']),
]);
}
}
尝试
Auth\RegisterController@register
而不是Auth\RegisterController@create
您是通过路由参数发送数据还是在请求内部发送数据?获取以下错误:Class App\\Http\\Controllers\\Auth\\request不存在。(使用http\Env\Request;)添加使用\http\Request;在文件顶部或使用“创建(照亮\Http\Request$Request)”`