Sql CakePHP 3.0-无法在包含上使用选择
我正在为一个项目试用CakePHP 3.0——不幸的是,它使用的是一个遗留数据库,因此我无法依赖传统的表/字段名 我有三张桌子,书名,AUT作者和TAUT。TAUT是TIT和AUT的联接表 AUT表的配置如下所示: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
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上找到一个已解决的问题:通过在包含项上附加“字段”键,我能够限制选择。