试图找到正确的方法来在laravel中以一对一的多态关系将数据插入“用户”表

问题描述

我坚持了大约一周的时间, 我有一个用户表,该用户表在一对一多态关系上连接到其他两个表,对多态关系来说是很新的

用户表:

-------------------------------------------------------------------------
-- id | name | email | mobile | pass | userable_id | userable_type --
-- 1  | doe  | _____   ______   .......        2      App\Models\EmployeeDetail
-- 2  | doe  | _____   ______   .......        5      App\Models\FreelancerDetail
-------------------------------------------------------------------------

FreelancerDetail表:

-----------------------------------------------
-- id | hourly_rate | address | some_details --
-- 5  |   200       |  _____      ______     --
-----------------------------------------------

EmployeeDetail表:

--------------------------------------------------------------------
-- id | salary | emp_id | contract_type | other_details_and_so_on --
-- 2  |   380  |  _____      ______                               --
--------------------------------------------------------------------

现在在我拥有的模型上,

class User extends Authenticable
{
public function userable()
    {
        return $this->morphTo();
    }
}

class EmployeeDetail extends Model
{
    public function user()
    {
        return $this->morphOne('App\Models\User','userable');
    }
}

class FreelancerDetail extends Model
{
    public function user()
    {
        return $this->morphOne('App\Models\User','userable');
     }
}

现在,一旦用户注册,详细信息将插入到用户表中,注册成功之后,并且一旦用户登录,则用户可以根据用户类型更新其个人资料,并且应该将相关数据插入基于课程的配置文件类型的FreelancerDetail或EmployeeDetail,

现在我的问题是有没有办法在用户注册自动填充userable_id和userable_type列?还是通常在多态关系中发生数据插入?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)