Yii Framework Forum: Сортировка по полю (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

Сортировка по полю (many to many) Rate Topic: -----

#1 User is offline   serge.kam 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 15-February 15

Posted 15 February 2015 - 09:27 AM

Добрый день.

Есть три таблички:
Оборудование:
tbl_equipment (eq_id, eq_title, eq_description, eq_amt)

Офис:
tbl_office (of_id, of_title, of_num, of_description)

Таблица связей:
tbl_eq_of (of_id, eq_id, status)

В Модели Office прописана реляция:
'equipment' => array(self::MANY_MANY, 'Equipment', '{{eq_of}}(of_id, eq_id)'),


Все прекрасно работает, когда просто нужен список техники из view Офиса:
$items = $model->equipment;
foreach($items as $item) {
    echo $item->eq_title . '<br />';
}


Но нужно этот список разбить на несколько списков по полю status [integer] с заголовками Статус 1, Статус 2... Статусы и количество статусов нам неизвестно.
Думаю нужно обернуть foreach в еще один foreach, но что в нем прописать??
0

#2 User is offline   Jadson 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 26-July 14

Posted 16 February 2015 - 05:33 AM

На сколько я помню для MANY_MANY так не получиться сделать, переделай под HAS_MANY и используй статус
0

#3 User is offline   serge.kam 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 2
  • Joined: 15-February 15

Posted 16 February 2015 - 09:42 AM

Спасибо за наводку, нашел такой путь:

Model Relation:
'eqRell' => array(self::HAS_MANY, 'Equipment', 'Equipmentoffice'),			
'eqHas' => array(self::HAS_MANY, 'Equipment', 'of_id', 'through' => 'eqRell'),


View:
$itemers = Equipment::model()->with('eqRell','eqHas')->findByPk('eq_id');

foreach($itemers as $itemer) {
	echo $itemer->status . '<br />';
}


Но работать не хочет...

Пишет:
Отношение "eqRell" не было определено в active record классе "Equipment".
0

#4 User is offline   Jadson 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 19
  • Joined: 26-July 14

Posted 17 February 2015 - 02:40 AM

Связь не правильно указана, если нужно с Office вытянуть tbl_equipment то я бы для таблицы tbl_eq_of создал модель
в ней добавил PK и уже с неё вытягивал бы, по другому вытянуть реляцию в данный момент не знаю как ещё
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