【发布时间】:2016-09-05 06:21:36
【问题描述】:
美好的一天! 我对 CakePHP 3 有一个小问题。我有这样的关联:
$this->belongsToMany('AdminUserGroup',[
'classname' => 'AdminUserGroup',
'foreignKey' => 'admin_user_id',
'targetForeignKey' => 'group_id',
'joinTable' => 'AdminUsersGroups'
]);
我正在使用此代码返回记录:
public function getAll()
{
$ble = $this->find()
->contain(['AdminUserGroup' ]);
return $ble;
}
直到它起作用,但是当我想选择指定的字段时,我遇到了问题。当我添加选择方法时,我看不到包含表中的列:
public function getAll()
{
$ble = $this->find()->select(['id', 'name', 'surname'])
->contain(['AdminUserGroup']);
return $ble;
}
所以我添加了回调查询:
public function getAll()
{
$ble = $this->find()->select(['id, name, surname'])
->contain(['AdminUserGroup' => function ($q) { return $q->select(['group_name']);}]);
return $ble;
}
但它仍然不起作用。我只能看到主表中的字段。不显示包含表格的字段。
{
"id": "8",
"name": "Ola",
"lastname": "BleBle",
"admin_user_group": []
},
我可以修复它吗?
【问题讨论】:
-
您的 SQL 查询看起来如何?提示:
->select(['id, name, surname'])将是->select(['id', 'name', 'surname']) -
别看那个。这是一个小错误,因为我是从脑海中编写的代码,它是有效的
标签: php mysql cakephp associations cakephp-3.0