Laravel post请求路由

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'

我在php laravel中有一个以下控制器:

// .....

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)”`