20
Мар
2018

Как удалить все записи с ::deleteAll() в yii2

В таблице хранятся выбранные пользователем данные. Среди прочих в таблице есть поле day и news_date. Day хранится в целочисленном формате (например, 9), news_date в формате int (timestamp) (например 1502229600 - это Tue, 08 Aug 2017 22:00:00 GMT).

Есть форма с кучей групп radioButton при помощи которой пользователь выбирает данные, которые затем попадут в таблицу. Выглядит она вот так:
введите сюда описание изображения Выбранные новости отправляют в контроллер где их обрабатывает цикл:

foreach ($text as $id => $newsText) (здесь $text - массив с выбранными данными, $id - id новости и $newsText - текст новости) заполняют нужные поля таблицы (примерно так $model->id_news = $id;) и сохраняются в базу.

Проблема: выбрана может быть только одна новость из столбца за один год. Т.е если пользователь выбирает новость из левого столбца "2017" то необходимо удалить все новости за 2017-й год (news_date преобразую в год) день этой новости в поле day из таблицы и сохранить запись заново.

Пытаюсь сделать как то вот так

foreach ($text as $id => $newsText) {
     //ищу в таблице запись по $id 
      $thisDayNew = $model::findOne(["id_news" => (int) $id]);
    //а дальше не знаю что и как делать :(
      if ((int) $thisDayNew->id_news != (int) $id) {
    //удалить все новости $id которых не подошло
   //и добавить новую
    $model = new ThisDay;
    $model::deleteAll
(["FROM_UNIXTIME(news_date, '%Y')"
 => 
date("Y", $tdNew->news->cdate),
 "day" =>
 date('j', mktime(0, 0, 0, 
 date('m', $tdNew->news_date),
 date('d', $tdNew->news_date),
 date('Y', $tdNew->news_date)))]);
   } else {
//просто вставляю новую запись (это сделано уже:))
}

Пояснение: В date('Y', $tdNew->news_date) я получаю дату публикации новости

Но этот код никак не срабатывает. Как реализовать данный функционал удаления?

P.S

var_dump($thisDayNew); подсказывает что $thisDayNew хранит массив как на изображении ниже

введите сюда описание изображения

Источник: https://ru.stackoverflow.com/questions/801905/%D0%9A%D0%B0%D0%BA-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%B2%D1%81%D0%B5-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8-%D1%81-deleteall-%D0%B2-yii2

Тебе может это понравится...

Добавить комментарий