Вы передаёте во view поисковую модель и DataProvider. И выводите скорее всего внутри виджетов. Так вот внутри виджета можно указать в качестве атрибута название связи и через точку нужный атрибут из связанной модели.
Код: Выделить всё
...
[
'attribute' => category.name,
'label' => 'Хочу свой заголовок',
]
...
или внутри параметра 'value':
Код: Выделить всё
[
'label' => 'Захотелось вывести название категории',
'value' => function($model){
if(!empty($model->category->name)){
return $model->category->name;
}
return null;
},
]
Во втором случае в функцию на вход будет отправлен экземпляр объекта Post, который получен через DataProvider.
Итог: самому никаких $model создавать в контроллере и тем более во view не нужно.