Php 拉威尔一对一的关系。将用户名从表保存到另一个表

Php 拉威尔一对一的关系。将用户名从表保存到另一个表,php,mysql,laravel,laravel-5,eloquent,Php,Mysql,Laravel,Laravel 5,Eloquent,TLDR:如何创建从一个表到另一个表的关系?例如,我希望用户表中的更改自动反映到供应商表中?类似于它只是从用户表中引用 我有这两张桌子 ======================== USER table 1. id 2. username 3. password 4. name ======================== 及 每次我添加新用户时,它都会自动保存到供应商表中。这就是我所做的: function saveUser($po

TLDR:如何创建从一个表到另一个表的关系?例如,我希望用户表中的更改自动反映到供应商表中?类似于它只是从用户表中引用

我有这两张桌子

========================
     USER table

     1. id
     2. username
     3. password
     4. name
========================

每次我添加新用户时,它都会自动保存到供应商表中。这就是我所做的:

function saveUser($postdata) {
    $newUser= new \App\UserModel;
    $newUser->email = $postdata['email'];
    $newUser->password = $postdata['password'];
    $newUser->name = $postdata['name'];
    $newUser->save();

    $this->saveSupplier($postdata['email'], $postdata['name']);
}

function saveSupplier($email, $name) {
    $newSupplier = new \App\SupplierModel;
    $newSupplier->email = $email;
    $newSupplier->name = $name;
    $newSupplier->save();
}

你看,这不是一段感情,对吧。这就像手动保存到两个表中一样。如何使供应商表依赖于用户表?例如,每次我在用户表中进行更改时,它都会自动反映到供应商表,而无需启动更新方法

您是否对触发器感兴趣。如果可以创建触发器,则每次插入
用户时都可以使用触发器插入
供应商

比如:

CREATE TRIGGER t_reflect_changes_user_supplier
AFTER INSERT
   ON USER FOR EACH ROW

BEGIN
   -- trigger code
   INSERT INTO SUPPLIER (username,name) VALUES new.username,new.name
END;

实现这一点的一种方法是在 用户型号

protected static function boot()
{
    parent::boot();

    static::created(function($user) {
        Supplier::create([
            'username' => $user->username  //or email or whatever you have.
            'name' => $user->name
        ]);
    });
}

为什么不在users表中创建一个名为“supplier”的新布尔字段呢?我只在供应商表中看到冗余信息。
protected static function boot()
{
    parent::boot();

    static::created(function($user) {
        Supplier::create([
            'username' => $user->username  //or email or whatever you have.
            'name' => $user->name
        ]);
    });
}