2015-09-03 2 views
0

Как можно поместить ActiveForm в столбец gridview? Ниже приведен код, который я сделал: я попытался отобразить страницу таким образом, чтобы она включала активную форму, которая мне нужна.Поместите ActiveForm в колонку Gridview Yii2

'columns' => [ 
     [ 'format' => 'html', 
      'value'=> function($data) { return Html::img($data->imageurl) . " <p class='feedback-username'>" . $data->username . "</p>"; }, 
      'contentOptions'=>['style'=>'width: 30px; height: 30px'], 
     ], 

     [ 'format' => 'raw', 
      'value' => function($model) { return "<p class='feedback'>". $model->KOMENTAR ."</p><br><p class='feedback-date'>". $model->TANGGAL ."</p><hr><div id='replay-". $model->ID_KOMENTAR."'><ul></ul></div>";}, 
     ], 
     [ 'format' => 'raw', 
      'contentOptions'=>['style'=>'width: 5px;'], 
      'value' => function($model) { 
       if($model->id == Yii::$app->user->identity->id) { 
        return Html::a('<i class="glyphicon glyphicon-share-alt"></i>',null,['id'=> 'replay-to-'. $model->ID_KOMENTAR ]).' '. 
          Html::a('<i class="glyphicon glyphicon-pencil"></i>', ['update', 'id' => $model->id]).' '. 
          Html::a('<i class="glyphicon glyphicon-trash"></i>', ['delete', 'id' => $model->id], ['data' => ['confirm' => 'Do you really want to delete this element?','method' => 'post']]); 
       } 
       return Html::a('<i class="glyphicon glyphicon-share-alt"></i>',['feedback', 'id' => $model->id],['id'=> 'replay-to-'. $model->ID_KOMENTAR ]); 
      }, 
     ], 
     [ 

      'content' => $this->render('feedback_test'), 
     ], 

Но я получил эту ошибку:

PHP Warning – yii\base\ErrorException 
call_user_func() expects parameter 1 to be a valid callback, function ' 
<div class="feedback-form"> 

<p>test</p> 
</div>' not found or invalid function name 

Как включить активную форму в колонке в виде таблицы в?

ответ

2

Попробуйте это.

[ 
    'content' => function($model, $key, $index, $column) { 
         echo $this->render('feedback_test'); 
         OR 
         echo $this->render('feedback_test', ['model' => $model]); 
       }, 
], 
+0

OK Вот хороший ответ –

0

Приведенный выше ответ выводит форму выше моей сетки. Мне нужна форма в одном из моих столбцов для каждой строки данных. Я в конечном итоге настройки в ActionColumn так:

[ 
    'class' => 'yii\grid\ActionColumn', 
    'template' => '{map}', 
    'contentOptions' => ['class' => 'text-center'], 
    'buttons' => [ 
    'map' => function ($model) use ($m, $r) { 
     return $this->render('_form', ['model' => $m, 'req' => $model, 'ref' => $r]); 
    }, 
    ], 
    'urlCreator' => function ($action, $model) { 
    if ($action === 'map') { 
     return $model; 
    } 
    }, 

]

Смежные вопросы