首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 5.4雄辩的大规模创作

Laravel 5.4雄辩的大规模创作
EN

Stack Overflow用户
提问于 2017-05-17 18:58:52
回答 2查看 825关注 0票数 0

给定下一个数组,它表示页面模型:

代码语言:javascript
运行
复制
[
  "en" => [
    "title": "Hello world",
    "content": "Lorem ipsum ...",
    "keyphrases": [
      "Key phrase 1",
      "Key phrase 2"
    ]
  ],
  "es" => [
    "title": "Hola Mundo",
    "content": "Lorem ipsum ...",
    "keyphrases": [
      "Frase clave 1",
      "Frase clave 2"
    ]
  ]
]

使用Page::create(...)将创建并保存新的页面记录到数据库中,但是关键短语存储在不同的表中(并由“Key其词”模型表示),因此我尝试使用Page::create(...)->keyphrases()->create($request->all()),但它没有工作,因为create方法只创建一个实例,据我所知。

考虑到我的数据被分成几种语言,在数据库中大规模创建“关键短语”的最佳方法是什么?

我认为这不重要,但我使用的是dimsav/laravel-translations

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-17 20:54:06

我会使用一个循环来插入多个记录。另一种方法是将请求的数组拆分为带有子数组的数组,该数组设置表的不同列。像这样

代码语言:javascript
运行
复制
//Modify the data so that the sturcture is as $keyhrases
$keyhrases = array( [ 'keyphrase' => 'Foo' ], [ 'keyphrase' => 'Bar' ], etc );

$page->keyphrases()->insert($keyhrases);

但是修改数组要比简单的for循环更多。

票数 1
EN

Stack Overflow用户

发布于 2017-05-17 19:24:32

不确定你想如何存储关键短语。但这里有个很好的例子。

代码语言:javascript
运行
复制
/*[
    [
        "Key phrase 1",
        "Key phrase 2"
    ],
    [
        "Frase clave 1",
        "Frase clave 2"
    ]
]*/
$keyPhrases = array_column($data, 'keyphrases');

$page = Page::create(...);

$page->keyphrases()->insert($keyPhrases);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44032836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档