在 where 子句中使用不等于 cakephp
Using not equal to in where clause cakephp
为什么这不起作用?
我想显示的文件是
- 可用(在我的例子中是 = 0)
- 每个人(在我的例子中是隐私设置 =1)
- 不等于文件的作者
它没有向我显示创建它的用户的任何内容,它应该显示一个文件
在这些条件下
似乎我在 'Files.user_id !=' => $auth->user_id
中遇到了问题,但我无法弄清楚它有什么问题
$filesTable->find('all')->where(['available' => 0,'Privacy.privacy_id' => 1,'Files.user_id !=' => $auth->user_id])->contain(['Users','Privacy'])->toArray();
这些都没有显示
click here
要在您的查询中包含 null
ID,您需要明确匹配:
$filesTable->find('all')->where([
'available' => 0,
'Privacy.privacy_id' => 1,
'OR' => [
'Files.user_id !=' => $auth->user_id,
'Files.user_id IS' => null,
],
])->contain(['Users','Privacy'])->toArray();
为什么这不起作用?
我想显示的文件是
- 可用(在我的例子中是 = 0)
- 每个人(在我的例子中是隐私设置 =1)
- 不等于文件的作者
它没有向我显示创建它的用户的任何内容,它应该显示一个文件 在这些条件下
似乎我在 'Files.user_id !=' => $auth->user_id
中遇到了问题,但我无法弄清楚它有什么问题
$filesTable->find('all')->where(['available' => 0,'Privacy.privacy_id' => 1,'Files.user_id !=' => $auth->user_id])->contain(['Users','Privacy'])->toArray();
这些都没有显示 click here
要在您的查询中包含 null
ID,您需要明确匹配:
$filesTable->find('all')->where([
'available' => 0,
'Privacy.privacy_id' => 1,
'OR' => [
'Files.user_id !=' => $auth->user_id,
'Files.user_id IS' => null,
],
])->contain(['Users','Privacy'])->toArray();