laravel,如何使用控制器存储动作来级联保存对象

我正在开发一个需要多重身份验证的应用程序,我为仪表板使用了 creative-tim 预设(前提是 creative-tim 使用“用户”名称在仪表板中存储用户)我在该管理表之上创建了它与 User 表具有一对一的关系,并创建了适当的中间件来限制对我的“仅限管理员”视图的访问,并使用 tinker 创建一个管理员并将其链接到测试所有内容。现在的问题是我想通过注册表自动创建与用户的管理关系,唯一的问题是,我使用的 creative-tim 模板不遵循 laravel 文档,所以我无法理解我不知道如何将“管理员”模型链接到创建的“用户”。


这是数据库/模型的一部分: User(id,name,email,email_verified_at,password,rememberToken,timestamps) Admin(id,user_id,role,timestamps)


他们使用的方式是(显然是存储)但他们使用了 UserRequest 和 User Object,我尝试这样做:


        $Admin = new Admin();

        $Admin->role="Admin";

        $Admin->user_id = $model->id;

        $Admin->save();

这是我找到的原始功能


    public function store(UserRequest $request, User $model)

    {

        $model->create($request->merge(['password' =>Hash::make($request->get('password'))])->all());

  return redirect()->route('user.index')->withStatus(__('User successfully created.'));

    }


桃花长相依
浏览 114回答 1
1回答

皈依舞

我实际上找到了该问题的解决方案(这不是我的首选)所以我正常创建了一个用户并获得了 id,用它来创建一个管理员,验证后完美运行public function store(UserRequest $request, User $model)    {         //validation parameters         $item = new User();        $item->name = request('name');        $item->email = request('email');        $item->password = Hash::make(request('password'));        $item->save();        $admin = new Admin();        $admin->user_id = $item->id;        $admin->role ="SuperAdmin";        $admin->save();        return redirect()->route('user.index')->withStatus(__('User successfully created.'));    }
打开App,查看更多内容
随时随地看视频慕课网APP