在CakePHP中运行与控制器无关的查询

时间:2011-08-09 13:05:01

标签: cakephp cakephp-1.3 cakephp-appmodel

我有一个带有模型Job的Jobs for Jobs。

当我点击/ jobs(作业控制器的索引功能)时,我需要在其他2个表(未加入Job)上运行查询,以便在实际显示索引之前找到手动插入作业的值。

我尝试过几件事,但似乎无法在此方面取得任何进展。

任何人都可以帮我吗?

1)从客户和包的连接中选择字段(复杂条件) 2)迭代结果并在作业中插入/更新值 3)显示工作

提前谢谢。

Manikandan

2 个答案:

答案 0 :(得分:5)

您可以加载不相关的模型in a number of ways,但这可能是控制器的最佳模型:

$this->loadModel('Customer');
$customers = $this->Customer->find('all');

替代方案包括:

ClassRegistry::init('Customer')->find('all');
// or (equivalent)
$customer = ClassRegistry::init('Customer')
$customers = $customer->find('all');

或:

App::import('Model', 'Customer');
$customer = new Customer();
$customers = $customer->find('all');

答案 1 :(得分:2)

如果放在AppController中的beforeFilter下也可以这样做:

if($this->referer() == '/users/login' && $this->Auth->user()){
    $this->loadModel('User');
    $this->User->id = $this->Auth->User('id');
    $this->User->saveField('last_login', date(DATE_ATOM));
}