Database Larave数据库模型自身之间的关系
我对如何设计一个具有相互关系的模型有些怀疑 在我的例子中,我有一个id为且coach_id为的users表。所有用户都有一个id(很明显),但具有role Runner的用户也有coach_id指的是具有role coach的用户Database Larave数据库模型自身之间的关系,database,laravel,model,relationship,Database,Laravel,Model,Relationship,我对如何设计一个具有相互关系的模型有些怀疑 在我的例子中,我有一个id为且coach_id为的users表。所有用户都有一个id(很明显),但具有role Runner的用户也有coach_id指的是具有role coach的用户 第一步是如何在laravel表迁移中创建键,然后,如何在用户模型中添加正确的关系。首先,确保coach\u id可以为空: $table->unsignedInteger('coach_id')->nullable(); 如果模型id使用大整数,请使用unsigne
第一步是如何在laravel表迁移中创建键,然后,如何在用户模型中添加正确的关系。首先,确保
coach\u id
可以为空:
$table->unsignedInteger('coach_id')->nullable();
如果模型id使用大整数,请使用unsignedbiginger
然后定义外键:
$table->foreign('coach\u id')
->引用('id')
->关于('用户')
->onDelete('set null');
使用set null
而不是cascade
,因为删除coach时不希望删除相关用户
并在用户
模型中设置一对多关系:
public function coach(){
返回$this->belongsTo(self::class);
}
从Laravel>7,可以在移植中使用快捷方式:
$table->foreigned('coach\u id')
->可空()
->受限('用户')
->onDelete('set null');