HasOne和HasMany为同一个表cakephp
问题描述:
我想设置hasOne
和hasMany
到相同的model
,在我的代码的一部分,我只需要1个结果,但在其他部分我需要所有结果(对象类型客户端将返回在我的网站表):HasOne和HasMany为同一个表cakephp
$this->hasOne('Vendas')
->setForeignKey('id_cliente')
->setBindingKey('id')
;
$this->hasMany('Vendas')
->setForeignKey('id_cliente')
->setBidingKey('id');
这是可能的,或者我犯了一个错误?
答
阅读手册https://book.cakephp.org/3.0/en/orm/associations.html。仔细阅读整个页面。
- className:该表的类名与当前模型相关联。如果你正在定义'User hasOne Address'关系,那么className键应该等于'Addresses'。
- 条件:查找数组()兼容条件,如[ 'Addresses.primary'=>真]
定义的类名和条件,您需要为您的ASSOCS。
$this->hasOne('Foo', [
'className' => 'Foo',
'conditions' => [/* whatever you need*/]
]);
$this->hasMany('Bar', [
'className' => 'Foo',
'conditions' => [/* whatever you need*/]
]);
答
如果关系是1- *,则应将关系定义为hasMany()
。然后,您针对一个结果编写查询并为多个结果查询
我想你已经混淆了'hasMany'的别名和类名;) – ndm
Meh,true,corrected。 – burzum