Laravel Eloquent:一个主键中有多个外键

时间:2019-12-04 04:05:19

标签: laravel

我正在用Laravel创建一个项目。 我有两个通过迁移创建的数据库表: 我想在数据库架构中设置多个外键。

  1. 表用户
Schema::create('tr_users', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('name');
            $table->string('email');
            $table->timestamp('email_verified_at')->nullable();
            $table->rememberToken();
            $table->string('password');

            $table->unsignedBigInteger('departement_id')->nullable();
            $table->foreign('departement_id')
                ->references('id_departement')->on('tr_departements')
                ->onUpdate('cascade')
                ->onDelete('cascade');
        });
  1. 餐桌部
Schema::create('tr_departements', function (Blueprint $table) {
            $table->bigIncrements('id_departement');
            $table->string('name');
            $table->timestamps();

            $table->unsignedBigInteger('created_by')->nullable();
            $table->foreign('created_by')
                ->references('id')->on('tr_users')
                ->onDelete('cascade');
            $table->unsignedBigInteger('updated_by')->nullable();
            $table->foreign('updated_by')
                ->references('id')->on('tr_users')
                ->onDelete('cascade');
        });

我想知道的是如何在模型中描述关系?

编辑:
我使用这种关系的计划是每个用户都属于一个部门,任何部门都有很多用户,每个用户只有一个部门

1 个答案:

答案 0 :(得分:0)

如果您正在寻求用户与部门之间的一对一关系,则这种关系将是这样的:

在您的用户模型中,代码将如下所示:

public function department()
{
    return $this->hasOne('App\Department');
}

在您的部门模型中:

public function user()
    {
        return $this->belongsTo('App\User');
    }

有关多重关系,您可以参考laravel文档