我使用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