Есть две таблицы. Категории и врачи. Чтобы не мучаться связь один ко многим.
Модель Categoryuse yii\db\ActiveRecord;
class Category extends ActiveRecord
{
public static function tableName()
{
return 'category';
}
public function getDoc()
{
return $this->hasMany(Doctor::className(), ['category_id'=> 'id']);
}
}
Модель Doctoruse yii\db\ActiveRecord;
class Doctor extends ActiveRecord
{
public static function tableName()
{
return 'doctors';
}
public function getCategory()
{
return $this->hasOne(Category::className(), ['id'=> 'category_id']);
}
}
Имеется две модели. В чём суть.
Создан виджет. И в виджете в методе run() хочу получить объект, преобразованный в массив где в у каждой категории по связи как чайлд или нечто подобное приплетаются врачи
Массив категорий получить просто
public function run()
{
$this->data=Category::find()->indexBy('id')->asArray()->all();
debug($this->data2);
return $this->tpl;
}
Но как получить именно более сложный массив с категориями и врачами?
Дальше смысл формировать список категорий и вложенный список врачей в каждую категорию через foreach.