我有3个模型Employees
Customers
和Partners
我想在employees
模型的customers
视图中显示所有表partners
dashboard
和Employees
的计数。
EmployeesController.php
<?php
namespace App\Controller;
class EmployeesController extends AppController
{
public function dashboard()
{
}
}
?>
我是cakephp的新手,我根本不知道如何查询其他模型表。
请指出我的好教程或文档。这会很有帮助
答案 0 :(得分:1)
我使用以下代码修复它。
// Controller
$this->loadModel("Customer");
$query = $this->Customers->find('all', [
'conditions' => ['Customers.area_cd =' => $this->Auth->user('area_cd')]
]);
$entity_count[0] = $query->count();
$this->loadModel("Employee");
$query = $this->Employees->find('all', [
'conditions' => ['Employees.area_cd =' => $this->Auth->user('area_cd')]
]);
$entity_count[1] = $query->count();
$this->loadModel("Partner");
$query = $this->Partners->find('all', [
'conditions' => ['Partners.area_cd =' => $this->Auth->user('area_cd')]
]);
$entity_count[2] = $query->count();
$this->set(compact('entity_count'));
// View
<?= $entity_count[0] ?>
答案 1 :(得分:0)
要使用的查询是嵌套查询,分配给数组。然后您可以从那里访问值。
特别是,您可能希望编写类似的内容:
$result = List();
$result->query('SELECT COUNT(SELECT * FROM usertable), COUNT(SELECT * FROM partnertable), COUNT(SELECT * FROM customertable)');
要访问这些值,您可以根据数组中的位置引用$result
,即。 $result[0]
将是第一个值,$result[1]
是第二个值,依此类推。
如果您需要指定计数的项目(例如活动用户,活跃客户等),请在计数表达式中的select语句中添加where子句
EG。 SELECT * FROM usertable WHERE active="yes"
获得所需数据后,您可以编辑要求显示的源文件,并使用php echo将其放置到html流中