0

Привет есть "модель" в ней метод "remove($a, $b = 0)" и контроллер в нем "метод1" и "метод2", не могу понять почему когда обращаюсь к "remove" от "метод1" то все работает как часы пример

$this->MyModel->remove($array, $cause);

, а когда от "метод2", то cakephp пишет ошибку

$this->MyModel->remove($id, $cause);

"Cake/Model/Datasource/DboSource.php (line 523) 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'remove' at line 1' /Cake/Model/Datasource/DboSource.php (line 524) 'remove'"

в логах "Error: [PDOException] SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'remove' at line 1"

метод в модели

public function remove($ids, $cause = 0){
 if(!$ids){
 return false;
 }
 
 if(is_array($ids)){
 $ids = implode(',', $ids);
 $remove = "UPDATE mymodels SET cause_close = '". $cause. "', in_archive = '1' WHERE id in ({$ids})";
 $this->query($remove);
 }else{
 $data = [
 'MyModel' => [
 'id' => $ids,
 'in_archive' => 1,
 'cause_close' => $cause
 ]
 ];
 $this->save($data, ['callbacks' => false, 'validate' => false]);
 }
 return true;
 
}

Я пробовал оставлять метод в модели пустым

public function remove($ids, $cause = 0){
//закомментированный код
}

ошибка все равно такая же

Так же я пробовал вызывать метод remove из метод2 вот так

$this->loadModel('Mymodel')->remove($id, $cause);

тогда ошибка такая: Call to a member function remove() on boolean

метод1 работает для списка, т.е. пользователь выбирает несколько элементов и вызывает его, метод2 работает для отдельной страницы с разницей, при вызове метода всплывает popup с выбором причины. оба POST

задан 27 июл. 2021 в 9:31
2
  • Я не разобрался че с этим делать воткнул запрос к таблице прям в контроллер $this->MyModel->query('UPDATE ..........'); Commented 27 июл. 2021 в 12:22
  • Попробуй в качестве проверки вывести получившуюся строку запроса $remove Commented 25 апр. 2022 в 10:57

0

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.