Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql CakePHP 3.0-无法在包含上使用选择_Sql_Cakephp 3.0 - Fatal编程技术网

Sql CakePHP 3.0-无法在包含上使用选择

Sql CakePHP 3.0-无法在包含上使用选择,sql,cakephp-3.0,Sql,Cakephp 3.0,我正在为一个项目试用CakePHP 3.0——不幸的是,它使用的是一个遗留数据库,因此我无法依赖传统的表/字段名 我有三张桌子,书名,AUT作者和TAUT。TAUT是TIT和AUT的联接表 AUT表的配置如下所示: public function initialize(array $config) { $this->table('AUT'); $this->displayField('SALUTATION'); $this-&g

我正在为一个项目试用CakePHP 3.0——不幸的是,它使用的是一个遗留数据库,因此我无法依赖传统的表/字段名

我有三张桌子,书名,AUT作者和TAUT。TAUT是TIT和AUT的联接表

AUT表的配置如下所示:

public function initialize(array $config)
    {
        $this->table('AUT');
        $this->displayField('SALUTATION');
        $this->primaryKey('AUTNO');
        $this->belongsToMany('Titles', [
            'foreignKey' => 'AUTNO',
            'targetForeignKey' => 'TITNO',
            'joinTable' => 'TAUT'
        ]);
    }
和TIT:

public function initialize(array $config)
    {
        $this->table('TIT');
        $this->displayField('TITLE');
        $this->primaryKey('TITNO');
        $this->belongsToMany('Authors', [
            'foreignKey' => 'TITNO',
            'targetForeignKey' => 'AUTNO',
            'joinTable' => 'TAUT'
        ]);
    }
当我运行以下查询时:

$query = $this->Titles->find()
    ->select(['TITNO','TITLE'])
    ->contain([
        'Authors' => function ($q) {
            return $q
                ->select(['Authors.AUTNO','Authors.SALUTATION']);
        }
    ]);
我通过两个查询获得了所需的数据,但Authors上的select方法似乎不起作用-结果查询从表中提取每个字段,而不仅仅是方法中的字段。第一个选择不起作用,查询只包括请求的字段

这里的配置或查询代码本身是否有问题?我怀疑这是因为使用了一个命名不好的遗留数据库,但如果有任何方法修复它,我将不胜感激


提前感谢。

这看起来像个bug,请在githubHi José中打开一张罚单,感谢您的评论,我能够在github上找到一个已解决的问题:通过在包含项上附加“字段”键,我能够限制选择。