Всем привет!
В общем суть такая, есть 2 таблицы, таблица
category и таблица
mod_subscribes_event_setting в которой (id и id категории).
Есть страница список всех категорий с checkbox, нужно записывать id категорий если checbox активен в таблицу
mod_subscribes_event_setting
Не могу составить алгоритм что бы лишний раз к бд не обращаться.
Имею в контроллере функцию
public function eventSetting(){
/**Список всех категорий*/
$event_categories = $this->subscribes_model_events->getListCategory();
/**Чекбоксы которые активны array{*,*,*,*}*/
$idsCategory = $_POST['ids'];
if(!empty($idsCategory))
{
foreach ($event_categories as $category){
foreach($idsCategory as $id)
{
if($category['id'] == $id)
{
/**По получаем ID категории если она есть в таблице mod_subscribes_event_setting*/
$event_category_item = $this->subscribes_model_events->getItem( $category['id']);
if ($category['id'] != $event_category_item['event_category_id']){
/**Если нет то создаем*/
$data= array(
'event_category_id' => $category['id']
);
$this->subscribes_model_events->addSetting($data);
}
/**Как то нужно проверить если статья была но checkbox сняли удалить эту запись*/
showMessage('Данные добавлены '.$data['event_category_id'] );
}
}
}
}
/**Загружаем view передаем список всех категорий*/
\CMSFactory\assetManager::create()
->setData(array(
'event_categories' => $event_categories
))
->renderAdmin('subscriber_event/setting');
}
Может можно это сделать с помощью SQL запросов что бы сразу записывать массив тех что нажаты, а тех что сняты удалять?