Cakephp: почему удалить пользовательский запрос не работает в app_controller?

#cakephp #cakephp-1.3 #cakephp-1.2

#cakephp #cakephp-1.3 #cakephp-1.2

Вопрос:

Я пишу приведенный ниже код в beforeFilter в aap_controller.

 $this->query('delete * from suggest_debate_tags where suggest_debate_id = 0');
  

Ошибка:

 Call to undefined method UsersController::query()
  

Ответ №1:

Класс AppController расширяет класс контроллера, который является базовым для контроллеров. query является частью модели, поэтому $this->query() не будет работать. Вам нужно поместить вызов query() в модель и вызвать модель из вашего AppController.

Ответ №2:

Наконец-то я получил решение

Я пишу приведенный ниже код в beforeFilter в aap_controller.

 App::import('Model','SuggestDebateTag');

$cnt_tag_arr = $this->SuggestDebateTag->find('count',array ( "SuggestDebateTag.suggest_debate_id" => 0));

if($cnt_tag_arr > 0)
{

        $conditions = array ( "SuggestDebateTag.suggest_debate_id" => 0);
        $this->SuggestDebateTag->deleteAll($conditions);

}
  

И я пишу приведенный ниже код в users_controller.php

 var $uses = array('SuggestDebateTag');
  

Все работает нормально.

Комментарии:

1. По сути, вы очищаете suggest_debat_tags таблицу каждый раз, когда поступает запрос . Вы уверены, что хотите это сделать?