无法在同一模型上创建一对多关系

时间:2021-05-22 16:41:21

标签: laravel

我想在我的网站上创建 sponsors 个用户。我使用与关系相同的模型。

User.php(模型):

public function sponsor(): HasMany
{
    return $this->hasMany(self::class, 'sponsored_id', 'sponsor_id');
}

public function sponsored(): BelongsTo
{
    return $this->BelongsTo(self::class, 'sponsor_id', 'sponsored_id');
}

赞助商行:

Schema::table('users', function (Blueprint $table) {
    $table->foreignId('sponsor_id')->nullable();
    $table->foreignId('sponsored_id')->nullable();
});

我的用户种子:

$sponsor = User::factory()->create(['name' => 'sponsor']);

$sponsor->sponsor()->save(
    User::factory()->make()
);

1 个答案:

答案 0 :(得分:0)

根据您的评论,您正在尝试从赞助商处检索一条记录,因此应该是

$sponsor->sponsor()->first()