Yii Framework Forum: junction table many to many - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

junction table many to many Rate Topic: -----

#1 User is offline   Pabloss 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 125
  • Joined: 05-April 15

Posted 10 May 2017 - 04:07 AM

Może mi ktoś wytłumaczyć do czego w ogóle to służy? w sensie to via() albo viaTable()? czytam i czytam dokumentację i nic z tego nie mogę zrozumiec.

mam tabelę

products

order

order_products (many to many)
- idorder
- id products

Po co i jak tego używać?
0

#2 User is offline   afnwork 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 32
  • Joined: 09-May 12

Posted 11 May 2017 - 07:05 AM

W przypadku relacji wiele do wielu kiedy masz tablice pośrednią musisz podać w relacji sposób złączenia.
Za pomocą viaTable kiedy podajesz tabele pośrednią

    public function getItems()
    {
        return $this->hasMany(Item::className(), ['id' => 'item_id'])
            ->viaTable('order_item', ['order_id' => 'id']);
    }

lub via kiedy podajesz relację. Relacje oczywiście należy zdefiniować i nie musi zawierać tylko kluczy, ale mogą być też tam warunki dodatkowe.
    public function getItems()
    {
        return $this->hasMany(Item::className(), ['id' => 'item_id'])
            ->via('orderItems');
    }

    public function getOrderItems()
    {
        return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
    }


W praktyce relacja oraz viaTable mogą zawierać tą samą definicję, sposób wiązania.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users