php - Cake PHP 返回带有空值的记录

标签 php mysql cakephp cakephp-3.0

我有一个索引方法:

public function index()
{
    $this->set('contracts',
        $this->paginate(
            $this->Contracts
                ->find()
                ->contain('Currencies'])
                ->where(['Contracts.created_by_id' => $this->Auth->user('id')])
                ->order(['Contracts.created' => "desc"])
        )
    );
    $this->set('_serialize', ['contracts']);
}

问题是它只返回具有货币的记录(在我的数据库表currency_id中)。具有currency_id = null的记录。 所以我只想获取所有记录,无论它们的currency_id是否为空,但同时保持在我的结果中返回货币实体

最佳答案

如果你已经烘焙了模型,那么你就会遇到这个问题。因为通过烘焙模型,默认模型关联将设置为“INNER JOIN”。

如果您查看 src/model/ContactsTable 中的“ContactsTable”,请确保您“LEFT JOIN”“User”表,或者您可以完全删除“joinType”,因为在默认情况下 cakephp 将 Contain 或 join 设置为'左连接'

class ContactsTable extends Table
{

   public function initialize(array $config)
    {

      $this->belongsTo('Currencies', [
            'foreignKey' => 'created_by_id',
            'joinType' => 'LEFT'
      ]);
   }
}

关于php - Cake PHP 返回带有空值的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33394622/

相关文章:

authentication - CakePHP - 两种类型的用户进行身份验证

php - PHP 脚本上的 504 网关超时错误

php - 即使更新 php.ini 也会出现内存不足的情况

php - MySQL - 将 ID 从 1 重置为最大值时出错

javascript - cakephp 2.2 在 Controller 中检索 json 数据

php - CakePHP 3 中同一模型的多个关联

php - 将字符串截断为单词和框大小

PHP 和问题

mysql - 优化 MySQL 表以获得更快的 ORDER BY 性能

php - Yii:使用 GROUP BY 子句