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]);
}