Laravel发布请求路线

时间:2019-06-15 18:14:32

标签: laravel parameters controller routes arguments

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参数传递到我的函数中(正确路由)

2 个答案:

答案 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']),
        ]);
    }
}