Я создаю API (Laravel 5) для игры в RPG и пытаюсь засеять данные.Взаимодействие от одного до большого числа
Каждый уровень содержит много квестов, и каждый квест принадлежит к одному уровню.
Просматривая Laravel docs, я вижу только отношения для вставки данных, относящихся к модели для одного: один (associate
), и много: много (sync, attach
), но ничего на примере одного: многие (level has many quests, but quests only have one level
).
Вы можете видеть ниже в посеве, что я пытаюсь случайным образом связать несколько квестов с уровнями. Я также попытался attach
и sync
но получить ошибки
Вызов неопределенной метод Осветите \ Database \ Query \ Builder :: адъюнкт()
и
Призыв к неопределенным метод Illuminate \ Database \ Query \ Builder :: attach()
Модель уровня:
public function quests()
{
return $this->hasMany(Quest::class);
}
Quest модель:
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']);
}