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

时间:2016-01-05 15:18:30

标签: php laravel entity-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);

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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