我使用Cinelist中的API获取电影标题+时间,然后我想将这些值保存到数据库中。laravel检索json并保存到数据库中
目前,它确实保存,但只有1条记录,最后一条。不过,我希望它能保存每一个。
另外,每次运行时,我想更新现有记录,而不是创建新记录,除非有更多结果。
所以通常有5条记录,每次我运行函数我想用新的5条记录更新数据库,但是,如果它是不同的一天,并且有6条记录我想更新5条记录并插入1条额外的之一,所以有6
我迄今为止代码:
function odeon(){
$data= file_get_contents('https://api.cinelist.co.uk/get/times/cinema/10565');
$data = json_decode($data);
foreach($data->listings as $listing){
$title = $listing->title;
$time = implode(', ', $listing->times);
$id = + 1;
$films = Film::where('id', $id)->first();
if (!$films) {
$films = new Film();
}
$films->title = $title;
$films->times = $time;
$films->save();
}
}
您的ID因您创建的每个新电影对象而重置,因为它位于您的foreach范围内。所以id每次都会是'1',你会不断更新这个对象。 – Jerodev
那么解决方案是什么? – Przemek