所以我的数据库中有两个表,第一个表是在订阅付款时创建的,并以用户的电子邮件作为引用。然后用户在事后创建一个帐户。因此未设置外键。
我想生成一个查询,从该订阅生成表中获取数据。我正在尝试这样的事情:
// Querying the members table, trying to include member_subsr data
$oMembers = $Members->find('all',
[
'contains' => ['member_subscr'],
'conditions' => [
'member_email' => 'members.email'
],
'order' =>
[
'id' => 'DESC'
]
]);
错误:未找到列:1054“where 子句”中存在未知列“member_email”
不知道从这里去哪里。我想通过用户电子邮件而不是外键关联条目。
如有任何帮助,我们将不胜感激。
最佳答案
我已经解决了。当处理与平常不同的外键时,您必须在 MembersTable 初始化函数中设置外键和新的 BindingKey。
// In MembersTable
$this->hasOne('member_attributes')
->setForeignKey('member_email')
->setBindingKey('email');
// in Controller
$oMembers = $Members->find('all')->contain(['member_attributes']);
关于mysql - CakePHP/MySQL 获取松散关联的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53205377/