HasOne和HasMany用于相同的Table cakephp

时间:2017-09-16 16:03:40

标签: php sql cakephp orm cakephp-3.0

我想将hasOnehasMany设置为相同的model,在我的代码的一部分中我只需要1个结果,但在其他方面我需要所有结果(对象)从类型客户端将返回我的网站中的表):

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

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

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

2 个答案:

答案 0 :(得分:1)

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

  • className :与当前模型关联的表的类名。如果您要定义'User hasOne Address'关系,则className键应该等于'Addresses'。
  • 条件:一系列与find()兼容的条件,例如[' Addresses.primary' =>真]

定义关联所需的类名和条件。

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

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

答案 1 :(得分:0)

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