为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
桃花长相依 2021-07-12 15:33:34
我正在开发一个需要多重身份验证的应用程序,我为仪表板使用了 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.'));    }
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

我实际上找到了该问题的解决方案(这不是我的首选)所以我正常创建了一个用户并获得了 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.'));

    }


查看完整回答
反对 回复 2021-07-16
  • 1 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信