Есть одна таблица в которой хранятся данные о собаках (родословные)
CREATE TABLE IF NOT EXISTS `pedigrees` (
`pedigrees_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`sire` varchar(255) NOT NULL,
`dam` varchar(255) NOT NULL,
etc
Вывод в сгенеренные GII CRUD страницу view.php
Нужно выбрать потомков и партнеров.
Потомки:
$query.= "FROM pedigrees WHERE sire = $id or dam = $id order by name";
как это перевести в yii2 запрос?
в моделе:
public function getChild(){
return $this->hasOne(Pedigrees::className(), ['dam' => 'pedigrees_id', 'sire' => 'pedigrees_id']);
}
вывод во вьюшку:
<?php if (isset($model->child)) {
echo Html::a( Html::encode($model->child->name, $model->child->pedigrees_id), Url::to(['pedigrees/view', 'id' => $model->child->pedigrees_id]));
}else{ echo "No info"; } ?>
С партнерами чуть сложнее:
$query.= "from (SELECT dam as partner_id FROM pedigrees WHERE (sire=$id and dam<>0) group by dam
union SELECT sire as partner_id FROM pedigrees WHERE (dam=$id and sire<>0) group by sire) t
order by (select a.name from pedigrees a where a.pedigrees_id=t.partner_id)";