【问题标题】:HasOne and HasMany for the same Table cakephpHasOne 和 HasMany 用于同一张表 cakephp
【发布时间】:2017-09-16 16:03:40
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: php sql cakephp orm cakephp-3.0


    【解决方案1】:

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

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

    为你的 assocs 定义你需要的类名和条件。

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

    【讨论】:

    • 我认为你混淆了 hasMany 的别名和类名;)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 2017-02-18
      • 2014-04-02
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      相关资源
      最近更新 更多