Skip to main content
Stack Overflow на русском

Вернуться к вопросу

Post Timeline

изменено тело сообщения
Источник Ссылка

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

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

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

$this->Mymodel>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

Привет есть "модель" в ней метод "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

Привет есть "модель" в ней метод "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

Источник Ссылка

cakePHP error remove data from model

Привет есть "модель" в ней метод "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

lang-php

AltStyle によって変換されたページ (->オリジナル) /