PHP: Laravel 如何在多个一对多关系中创建模型

PHP: Laravel how to create model in multiple one-many relationship

我在我的laravel应用程序中有三个模型之间的关系,user模型有很多pagespages有很多keywords,所有它对应于数据库中同名的三个表。我想创建一个 user 并将用户 pageskeywords 传递给页面。我怀疑我不知道该怎么做。我在下面做了什么,但它不起作用,即使我将 keywords 添加到 $fillable 它也会抛出异常 no column keywords on pages

我做的是:

        $pages  =   [
            'name' => 'mimi',
            'link' => 'mimi',
            'category' => 'trivial',
            'keywords' => [
                ['name' => 'GGG'], 
                ['name' => 'DDD']
            ]
        ];

        $user->pages()->create($pages);

您需要先创建页面,然后再添加关键字。 (不确定语法是否正确)

$pages  =   [
    'name' => 'mimi',
    'link' => 'mimi',
    'category' => 'trivial'
];

$keywords = ['GGG','DDD'];

$page = $user->pages()->create($pages);

foreach($keywords as $keyword) {
  $page->keywords()->create(['name' => $keyword]);
}