如何在数据库中更新或创建此数组?
图像模型包含id,title,src和
$data =[
["title" => "toyota",
"src" => "toyota5487"],
["title" => "benz",
"src" => "benz5487" ],
["title" => "benz",
"src" => "benz5487"]
];
Image::updateOrCreate($data);
错误:Illuminate \ Database \ QueryException SQLSTATE [42S22]:列不 找到:1054'where子句'中的未知列'toyota'(SQL:select * 来自
images
,其中(toyota
= toyota5487和benz
= benz5487) 限制1)
答案 0 :(得分:0)
查询构建器updateOrCreate采用两个参数作为关联数组:
创建或更新与属性匹配的记录,并填充 值。
您可以像这样使用它:
$data =[
["title" => "toyota",
"src" => "toyota5487"],
["title" => "benz",
"src" => "benz5487" ],
["title" => "benz",
"src" => "benz5487"]
];
foreach ($data as $item)
{
Image::updateOrCreate($item);
}
请注意,如果第二个参数与第一个相同,则可以忽略它。
答案 1 :(得分:0)
$data = [
['title'=>'toyota', 'src'=> 'toyota5487'],
['user_id'=>'benz', 'game_id'=> 'benz5487'],
//...
];
雄辩的做法
Model::insert($data);
查询构建器方法
DB::table('table')->insert($data);
使用上述方法,您可以在一个查询中插入多个条目。
updateorcreate
接受2个参数,其中一个用作条件,其他插入
例如:
// If there's a flight from Oakland to San Diego, set the price to $99.
// If no matching model exists, create one.
$flight = Flight::updateOrCreate(
['departure' => 'Oakland', 'destination' => 'San Diego'],
['price' => 99]
);
答案 2 :(得分:0)
您可以循环每个数据,然后使用$image = Image::updateOrCreate($data)