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

发布于 2024-11-28 19:16:11 字数 249 浏览 3 评论 0原文

我有一个带有模型作业的作业控制器。

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

我已经尝试了几件事,但似乎无法在这方面取得任何进展。

谁能帮我解决这个问题吗?

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

预先感谢您。

马尼坎丹

I have a Controller for Jobs with a model Job.

When I hit /jobs (the index function of Job Controller), I need to run a query on 2 other tables (not joined to Job) to find values to manually insert into jobs before actually displaying the index.

I have tried several things but can't seem to make any progress on this.

Can anyone help me with this?

1) select fields from a join on customers and packages (complex conditions)
2) iterate through results and insert/update values in job
3) display jobs

Thank you in advance.

Manikandan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暖心男生 2024-12-05 19:16:11

您可以通过多种方式加载不相关的模型,但这对于控制器来说可能是最好的:

$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');

You can load non-related models in a number of ways, but this is probably the best one for controllers:

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

Alternatives include:

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

or:

App::import('Model', 'Customer');
$customer = new Customer();
$customers = $customer->find('all');
弥繁 2024-12-05 19:16:11

如果放在 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));
}

this may work as well if placed under beforeFilter in AppController:

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));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文