Ты вообще не понимаешь как это работает?
Объясняю. Пока что читай.
В контроллере у тебя передаются параметры в представление
Код: Выделить всё
public function actionView($id)
{
$model = $this->findModel($id); // поиск твоей модели
$searchModel = new HistoryBalanceSearch; //Модель поиска для твоего GridView
$dataProvider = $searchModel->search(\Yii::$app->getRequest()->get(), $id); //Тут в переменную $dataProvider передается $dataProvider из search в твоей модели HistoryBalanceSearch.
return $this->render('view', [
'model' => $model, //Передаешь модель
'dataProvider' => $dataProvider, //Передаешь dataProvider
'searchModel' => $searchModel, //Передаешь модель поиска
]);
}
Модель поиска и как у тебя там всё происходит объяснять не буду, сам понимать должен.
Дальше по твоему
actionView, когда ты открываешь файл представления
person/view
Внутри
person/view можно использовать параметры, которые ты передаешь (и не только их), а именно
$model, $dataProvider, $searchModel.
Эти три переменные приходят через контроллер.
В файле
person/view
Код: Выделить всё
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
['attribute' => 'user_id',
'value' => function ($model) {
return $model->user->username;
}
],
[
'attribute' => 'balance',
'format' => 'raw',
'value' => function ($model) {
return $model->balance . '<br>
<span class="text-success">' . $model->credit . '</span>';
}
],
[
'attribute' => 'balance_up',
'format' => 'raw',
'value' => function($model) {
return \yii\helpers\Html::tag('span', $model->balance_up . '<br>' . $model->credit_up . (($model->credit_up >= 0)), [
'class' => ($model->credit_up >= 0) ? 'text-success' : 'text-danger'
]);
}
],
[
'attribute' => 'type',
'filter' => Html::activeDropDownList(
$searchModel,
'type',
HistoryBalance::getSortLabels(),
[
'everyday' => 'каждый день',
'class' =>
'form-control form-control-sm'
]
),
],
'comment',
],
]); ?>