如何使eloquent与laravel的关系迁移与table相同?
How make eloquent laravel relathionship migration with the same table?
if 而不是让用户 table 一个用户可以关注多个用户。我会有一头奶牛 table,其中每头奶牛都有一个父亲和一个母亲,而 parents 可以有许多 children。我是否需要一个外部 table 来存储它,或者我可以只在我的奶牛 table 中添加字段 cow_father_id 和 cow_mother_id?
-指的是使奶牛 table 与同一头奶牛 table 建立 2 eloquent 关系
这种迁移会是什么样子?
你可以做到这一点。我也测试过。
迁移
Schema::create('cows', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('father_id')->nullable();
$table->integer('mother_id')->nullable();
$table->timestamps();
});
型号
class Cow extends Model
{
use HasFactory;
public function father()
{
return $this->belongsTo(self::class, 'father_id');
}
public function mother()
{
return $this->belongsTo(self::class, 'mother_id');
}
public function children()
{
return $this->hasMany(self::class, 'father_id')->orWhere('mother_id', $this->id);
}
}
if 而不是让用户 table 一个用户可以关注多个用户。我会有一头奶牛 table,其中每头奶牛都有一个父亲和一个母亲,而 parents 可以有许多 children。我是否需要一个外部 table 来存储它,或者我可以只在我的奶牛 table 中添加字段 cow_father_id 和 cow_mother_id? -指的是使奶牛 table 与同一头奶牛 table 建立 2 eloquent 关系 这种迁移会是什么样子?
你可以做到这一点。我也测试过。
迁移
Schema::create('cows', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('father_id')->nullable();
$table->integer('mother_id')->nullable();
$table->timestamps();
});
型号
class Cow extends Model
{
use HasFactory;
public function father()
{
return $this->belongsTo(self::class, 'father_id');
}
public function mother()
{
return $this->belongsTo(self::class, 'mother_id');
}
public function children()
{
return $this->hasMany(self::class, 'father_id')->orWhere('mother_id', $this->id);
}
}