【发布时间】:2018-06-18 13:06:55
【问题描述】:
我有以下表格。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
group_id INT(11) NOT NULL,
username VARCHAR(255) NOT NULL,
name VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
lastlogin DATETIME DEFAULT NULL,
published BOOLEAN DEFAULT TRUE,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
UNIQUE KEY (username)
);
CREATE TABLE companies (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
UNIQUE KEY (name)
);
CREATE TABLE locations (
id INT AUTO_INCREMENT PRIMARY KEY,
company_id INT(11) NOT NULL,
uuid BINARY(36) NOT NULL,
name VARCHAR(255) NOT NULL,
clock_id INT(11) NOT NULL,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
FOREIGN KEY location_company_key (company_id) REFERENCES companies(id),
);
现在我想选择分配给登录用户的公司下列出的所有位置;
$companies = $this->Locations->Companies->find()
->select(['Companies.id'])
->matching('Users', function ($q) {
return $q->where(['Users.id' => $this->Auth->User('id')]);
});
$locations = $this->Locations->find()
->where(['company_id IN' => $companies]);
但由于某种原因,我没有得到预期的结果。有人知道如何解决吗?
【问题讨论】:
-
请记住在提问时要具体说明问题,“不起作用”并没有太大帮助,请始终描述到底发生了什么(结果如何你知道了,生成的查询是什么样子的),以及你期望发生的事情——谢谢!
标签: cakephp cakephp-3.x