HasOne 和 HasMany 相同 Table cakephp

HasOne and HasMany for the same Table cakephp

我想将 hasOnehasMany 设置为相同的 model,在我的部分代码中我只需要 1 个结果,但在其他部分我需要所有结果(来自类型 Client 的对象将 return 用于我站点中的 table):

    $this->hasOne('Vendas')
    ->setForeignKey('id_cliente')
    ->setBindingKey('id')
    ;

    $this->hasMany('Vendas')
    ->setForeignKey('id_cliente')
    ->setBidingKey('id');

这是可能的,还是我弄错了?

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

阅读手册https://book.cakephp.org/3.0/en/orm/associations.html。仔细阅读整个页面。

  • class名称:与当前模型关联的 table 的 class 名称。如果您要定义“用户有一个地址”关系,class名称键应等于“地址”。
  • conditions:find() 兼容条件的数组,例如['Addresses.primary' => true]

定义 class 名称和您的关联所需的条件。

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

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