Cakephp:为什么删除自定义查询在app_控制器中不起作用?

Cakephp:为什么删除自定义查询在app_控制器中不起作用?,cakephp,cakephp-1.3,cakephp-1.2,Cakephp,Cakephp 1.3,Cakephp 1.2,我在aap_控制器中的beforeFilter中编写以下代码 $this->query('delete * from suggest_debate_tags where suggest_debate_id = 0'); App::import('Model','SuggestDebateTag'); $cnt_tag_arr = $this->SuggestDebateTag->find('count',array ( "SuggestDebateTag.suggest_d

我在aap_控制器中的beforeFilter中编写以下代码

$this->query('delete * from suggest_debate_tags where suggest_debate_id = 0');
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);

}
错误:

Call to undefined method UsersController::query()

AppController类扩展了控制器类,该类是控制器的基础
query
是模型的一部分,因此
$this->query()
将不起作用。您需要将query()调用放入模型中,然后从AppController调用该模型

我终于找到了解决办法

我在aap_控制器中的beforeFilter中编写以下代码

$this->query('delete * from suggest_debate_tags where suggest_debate_id = 0');
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');

它的工作很好。

您基本上是在每次收到请求时清除
suggest\u debat\u标签。你确定要这么做吗?