#laravel #eloquent
#laravel #eloquent
Вопрос:
Итак, у меня есть таблица, содержащая активные и неактивные уроки (на данный момент все помечены как активные, я хочу удалить неактивные, а не обновлять). Я получаю список всех активных уроков.
foreach($lesson->data as $newdata){
$newdata->id;
}
$newdata-> id представляет идентификаторы все еще активных уроков, поэтому я хочу удалить все уроки, у которых нет идентификатора из приведенного выше результата foreach. Есть ли способ построить запрос?
Что-то вроде: … ->где(‘l_id’, ‘!=’, ‘$newdata->’)-> Или где(‘l_id’, ‘!=’, ‘$newdata->’) … в этом смысле вроде как. В этой точной форме это не сработает.
Ответ №1:
Если у вас уже есть коллекция и вы хотите удалить все, кроме записей, которые находятся в этой коллекции, вы можете сделать что-то вроде:
$idsToKeep = $lessons->pluck('id')->toArray();
Lessons::whereNotIn('id', $idsToKeep)->delete();
Перед удалением некоторых записей я рекомендую сделать резервную копию ваших данных.