在 where 子句中使用不等于 cakephp

Using not equal to in where clause cakephp

为什么这不起作用?

我想显示的文件是

  1. 可用(在我的例子中是 = 0)
  2. 每个人(在我的例子中是隐私设置 =1)
  3. 不等于文件的作者

它没有向我显示创建它的用户的任何内容,它应该显示一个文件 在这些条件下

似乎我在 '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();