HasOne和HasMany用于同一个表cakephp

HasOne和HasMany用于同一个表cakephp,php,sql,cakephp,orm,cakephp-3.0,Php,Sql,Cakephp,Orm,Cakephp 3.0,我想将hasOne和hasMany设置为相同的model,在我的代码的一部分中,我只需要一个结果,但在另一部分中,我需要所有结果(将返回我站点中的表的类型客户端的对象): 这是可能的,或者我犯了错误?如果关系为1-*您应该将关系定义为hasMany()。然后编写一个查询一个结果和一个查询多个结果阅读手册。仔细阅读整页 类名:与当前模型关联的表的类名。如果要定义“User hasOne Address”关系,则className键应等于“Address” 条件:find()兼容条件的数组,如['

我想将
hasOne
hasMany
设置为相同的
model
,在我的代码的一部分中,我只需要一个结果,但在另一部分中,我需要所有结果(将返回我站点中的表的类型客户端的对象):


这是可能的,或者我犯了错误?

如果关系为1-*您应该将关系定义为
hasMany()
。然后编写一个查询一个结果和一个查询多个结果

阅读手册。仔细阅读整页

  • 类名:与当前模型关联的表的类名。如果要定义“User hasOne Address”关系,则className键应等于“Address”
  • 条件:find()兼容条件的数组,如['Addresses.primary'=>true]
定义ASSOC所需的类名和条件

    $this->hasOne('Foo', [
        'className' => 'Foo',
        'conditions' => [/* whatever you need*/]
    ]);

    $this->hasMany('Bar', [
        'className' => 'Foo',
        'conditions' => [/* whatever you need*/]
    ]);

我想你把
hasMany的别名和类名弄混了
    $this->hasOne('Foo', [
        'className' => 'Foo',
        'conditions' => [/* whatever you need*/]
    ]);

    $this->hasMany('Bar', [
        'className' => 'Foo',
        'conditions' => [/* whatever you need*/]
    ]);