Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 播种一对多关系_Php_Laravel_Laravel 5_Seed - Fatal编程技术网

Php 播种一对多关系

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

我正在为一个RPG游戏创建API(Laravel5),并尝试为数据播种

每个等级包含许多任务,每个任务属于一个等级

通过查看,我只看到了为一:一(
关联
)和多:多(
同步,附加
)插入相关模型数据的关系,但一:多(
级别有多个任务,但任务只有一个级别
)的示例没有

你可以在下面的播种中看到,我试图将多个任务随机关联到不同的等级。我还尝试了
附加
同步
,但出现了错误

调用未定义的方法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);
}