gpt4 book ai didi

php - 播种一对多关系

转载 作者:行者123 更新时间:2023-12-03 22:29:51 26 4
gpt4 key购买 nike

我正在为 RPG 游戏创建 API (Laravel 5),并尝试播种数据。

每个级别包含许多任务,每个任务都属于一个级别。

浏览 Laravel docs ,我只看到插入 one:one (associate) 和 Many:many (sync, Attach) 相关模型数据的关系,但对于 one 的示例却没有看到任何关系:许多(级别有很多任务,但任务只有一个级别)。

您可以在下面的播种中看到我试图将多个任务随机关联到级别。我还尝试过 attachsync 但出现错误

Call to undefined method Illuminate\Database\Query\Builder::associate()

Call to undefined method Illuminate\Database\Query\Builder::attach()

关卡模型:

public function quests()
{
return $this->hasMany(Quest::class);
}

任务模型:

public function levels()
{
return $this->belongsTo(Level::class);
}

水平播种机:

public function run()
{
Eloquent::unguard();

$levels = $this->createLevels();

$quests = Quest::all()->toArray();

/*
* Randomly join level id with associated quest ids
*/
foreach ($levels as $level) {

$level->quests()->associate($quests[rand(0, count($quests) - 1)]['id']);
}

最佳答案

您可以使用 save() 方法,如@Mithredate所述。

foreach ($levels as $level) {
$quest->levels()->save($level);
}

关于php - 播种一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32792858/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com