Php 播种一对多关系
我正在为一个RPG游戏创建API(Laravel5),并尝试为数据播种 每个等级包含许多任务,每个任务属于一个等级 通过查看,我只看到了为一:一(Php 播种一对多关系,php,laravel,laravel-5,seed,Php,Laravel,Laravel 5,Seed,我正在为一个RPG游戏创建API(Laravel5),并尝试为数据播种 每个等级包含许多任务,每个任务属于一个等级 通过查看,我只看到了为一:一(关联)和多:多(同步,附加)插入相关模型数据的关系,但一:多(级别有多个任务,但任务只有一个级别)的示例没有 你可以在下面的播种中看到,我试图将多个任务随机关联到不同的等级。我还尝试了附加和同步,但出现了错误 调用未定义的方法Illumb\Database\Query\Builder::associate() 及 调用未定义的方法Illumb\Data
关联
)和多:多(同步,附加
)插入相关模型数据的关系,但一:多(级别有多个任务,但任务只有一个级别
)的示例没有
你可以在下面的播种中看到,我试图将多个任务随机关联到不同的等级。我还尝试了附加
和同步
,但出现了错误
调用未定义的方法Illumb\Database\Query\Builder::associate()
及
调用未定义的方法Illumb\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所述的save()
方法
foreach ($levels as $level) {
$quest->levels()->save($level);
}