Появился такой вопрос.
Имею 3 таблицы, где region и person связаны через club:
region
______
ID
name
club
______
ID
name
region_ID
person
______
ID
name
surname
club_ID
Хочу вывести на странице Региона и клубы, и игроков из этих клубов.
С клубами проблем не возникло - связи прописал все ок.
С игроками сложнее:
В контроллере
Код: Выделить всё
public function actionView($id)
{
$model = Region::find()->where(['region.ID' => $id])->one();
$clubs = $model->clubs;
$persons = Region::find()
->select(['person.*'])
->joinWith('persons')
->where(['person.ID' => $id])
->all();
return $this->render('view', [
'model' => $model,
'clubs' => $clubs,
'persons' => $persons,
]);
}
Код: Выделить всё
<div class="region-view">
<h1><?= Html::encode($this->title) ?></h1>
<?= Html::encode("{$model->name} ({$model->short_name})") ?>
<?= Html::encode("{$model->parent_ID}") ?>
<?php foreach ($clubs as $club): ?>
<li>
<?= Html::encode("{$club->name} ") ?>
</li>
<?php endforeach; ?>
___________________________________________
<?php foreach ($persons as $person): ?>
<li>
<?= Html::encode("{$person->ID} ") ?>
<?= Html::encode("{$person->name} ") ?>
</li>
<?php endforeach; ?>
</div>
Если в представлении добавляю строку
Код: Выделить всё
<?= Html::encode("{$person->surname} ") ?>
Код: Выделить всё
Unknown Property – yii\base\UnknownPropertyException
Getting unknown property: app\models\Region::surname
Код: Выделить всё
<?= Html::encode("{$person->persons->surname} ") ?>
Код: Выделить всё
PHP Notice – yii\base\ErrorException
Trying to get property 'surname' of non-object
Не понимаю, что делать. Запрос SQL верный получается, в вар дампе инфа о фамилиях имеется.