Я использую GridView, чтобы показать модель под названием Родственники (фамильяры человека), которые имеют два поля: Человек (атрибут id_person) и Родственник (атрибут name_relative).
Таблицы моей базы данных — люди и родственники.
У меня проблема с полем Персона. Я не показываю идентификаторы людей, вместо этого я показываю имена людей, потому что идентификатор — это автоматически генерируемый первичный ключ.
Когда я пользователь хочет искать, его ищет id_person. Мне нужно искать набрав имя человека, никто не напишет идентификатор.
Вот код файла RelativesController:
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
[
'attribute' => 'id_person',
'label' => 'Person',
'value' => function($model) {
$person = \app\models\Persons::findOne(['id_person' => $model->id_person]);
return $person->name_person;
}
],
'name_relative',
],
]); ?>
Задача ещё не решена.
Других решений пока нет …