в данную переменную получаю массив $templateData, такого вида Код (Text): [ 0 => [ 'title' => 'Имя' 'value' => 'Макс' 'type' => 5 ] 1 => [ 'title' => 'Фамилия' 'value' => 'Петров' 'type' => 5 ] 2 => [ 'title' => 'Телефон' 'value' => '12345678910' 'type' => 3 ] 3 => [ 'title' => 'Дата рождения' 'value' => '1 янв. 1999 г.' 'type' => 12 ] 4 => [ 'title' => 'Пол' 'value' => 'Мужской' 'type' => 8 ] ] вот строчка кода, где формируется данный массив Код (Text): $templateData = $fieldsManage->getData($modelUserForm->document_id, $modelUserForm->document->template_id); ниже код как все это выглядет Код (Text): <?php /* @var $modelUserForm \common\models\forms\UserForm */ if (isset($modelUserForm->document)): ?> <div class="col-md-12"> <?php /* @var $fieldsManage \common\widgets\TemplateOfElement\components\FieldsManage */ $fieldsManage = Yii::$app->fieldsManage; $templateData = $fieldsManage->getData($modelUserForm->document_id, $modelUserForm->document->template_id); ?> </div> <?php endif; ?> как передать значения в DetailView? Код (Text): <div class="col-md-12"> <?= DetailView::widget([ 'model' => $modelUserForm, 'attributes' => [ 'id', 'email:email', 'created_at:date', 'updated_at:date', [ 'attribute' => 'document_id', 'format' => 'raw', 'value' => call_user_func(function ($modelUserForm) { /* @var $modelUserForm \common\models\forms\UserForm */ if (isset($modelUserForm->document)) { return $modelUserForm->document->template->name; } return null; }, $modelUserForm), 'captionOptions' => [ 'style' => 'width: 50% !important;' ] ], ], ]) ?> </div>
через use (), как обычно в анонимных функциях. А зачем call_user_func? Если не ошибаюсь, Yii понимает калбеки для value.
подобие такой конструкции? Код (PHP): 'value' => call_user_func(function ($modelUserForm) { /* @var $modelUserForm \common\models\forms\UserForm */ if (isset($modelUserForm->document)) { return $modelUserForm->document->template->name; } return null; }, $modelUserForm),
В php, чтоб использовать переменную из внешней области видимости внутри анонимной функции, её необходимо указать в конструкции use($varName). Если этого не знаете, рано вам на Yii писать, как и на любом другом фреймворке