Laravel 插入带外键的数组

Laravel insert array of arrays with foreign keys

我有两个table,新闻和news_links。新闻 table 看起来像这样 (id, title, body, date_published) 而 news_links 看起来像这样 (id, news_id, url).

我正在尝试构建一个可以插入新闻数组的查询:

array( 
  array(
    "id" => "123456",
    "title" => "First Title",
    "body" => "First body text",
    "date_published" => "01-01-16"
  )
  array(
    "id" => "22222",
    "title" => "Second Title",
    "body" => "Second body text",
    "date_published" => "01-01-16"
  )
)

这个数组将包含多个数组,这只是一个例子。

还将插入与这些新闻相关的链接。

array(
  array(
    "0" => "1",
    "1" => "123456",
    "2" => "img_url"
  )
  array(
    "0" => "2",
    "1" => "123456",
    "2" => "img_url"
  )
  array(
    "0" => "2",
    "1" => "22222",
    "2" => "img_url"
  )
)

我是否必须构建一个 foreach 循环和 运行 多个查询,或者是否有办法 运行 单个查询并将所有内容插入新闻和 news_links?

不,您不能使用一个查询在两个不同的 table 中插入数据。但是,您可以在一个查询中为一个 table 组合多个插入。 它看起来像

INSERT INTO news_links VALUES(1,123456,'url'),(2,123456,'url'),(2,22222,'url');

我认为这是一个简单的解决方案NewsLink::insert(array);