Я использую плагин audit-stash, который отлично работает со всеми моими таблицами.Но у меня есть особая функция, в которой пользователь выбирает строки с флажками, а затем меняет определенное поле на все из них.Таблица Audits содержит поля с именем «primary_key», которые, кажется, не работают в этом случае.
в моем контроллере, функция, я поместил это:
$this->request->data;
$data = $this->request->data;
if($this->request->is(['patch', 'post', 'put']))
{
$ids = $this->request->data('data.AssetsAssignations.id');
$room_id = $this->request->data('room_id');
$this->AssetsAssignations->updateAll(
['room_id ' => $room_id ],
['id IN' => $ids]
);
}
в моей таблице, я использовал это:
$this->addBehavior('AuditStash.AuditLog');
Мне сказали, что нет способа обойти это для контрольного хранилища, потому что updateAll обходит обратные вызовы модели, напрямую отправляя запрос в базу данных.
Мне предложили обновитьзаписывает одну за другой, если мне нужно вести журнал.
Как я могу преобразовать свой код updateAll () в цикл Save ()?
Эта попытка не сработала для меня, используя save() и saveMany ():
$this->request->data;
$data = $this->request->data;
if($this->request->is(['patch', 'post', 'put']))
{
$ids = $this->request->data('data.AssetsAssignations.id');
$asset_status_id = $this->request->data('asset_status_id');
foreach($ids as $id) {
$this->AssetsAssignations->saveMany(
['asset_status_id ' => $asset_status_id ]
);
}
}
заранее спасибо.