png_92
دوشنبه 22 شهریور 1395, 08:33 صبح
سلام
من میخوام تو گرید ویو ی فرم سوال جواب درست کنم مثل این :142517
برای درست کردن اون ۳ تا دکمه باید کوئری بزنم و گزینه های مختص هرسوالو از db فچ کنم ولی نمیدونم باید اینکارو کجا انجام بدم.
این کدی که من زدم:
<?php Pjax::begin(); ?>
<?php
$form = ActiveForm::begin([
'id' => 'q',
]);
?>
<?=
GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'question',
[
'label' => 'Options',
'value' => function ($dataProvider, $index, $widget) {
$op = ArrayHelper::map(Option::find([['id', 'option']])
->joinWith(['question as q'])
->where(['q.id' => $dataProvider->id])
->asArray()->all(), 'q.option_id', 'option');
return $form->field($model, 'option_id')
->radioList($op, array('class' => 'i-checks', 'form' => 'q'));
},
],
['class' => 'yii\grid\ActionColumn'],
],
]);
?>
<div class="form-group">
<?= Html::submitButton('Save', ['class' => 'btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php Pjax::end(); ?>
آیا این روش کلا درسته؟ این خطا برای من الان وجود داره :
Undefined variable: form
آیا درسته که من از 'value' برای ست کردن این کوئری استفاده کردم. من اینجا از گرید ویو استفاده کردم. شما چه پیشنهادی دارید برای ساخت چنین فرمی؟
من میخوام تو گرید ویو ی فرم سوال جواب درست کنم مثل این :142517
برای درست کردن اون ۳ تا دکمه باید کوئری بزنم و گزینه های مختص هرسوالو از db فچ کنم ولی نمیدونم باید اینکارو کجا انجام بدم.
این کدی که من زدم:
<?php Pjax::begin(); ?>
<?php
$form = ActiveForm::begin([
'id' => 'q',
]);
?>
<?=
GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'question',
[
'label' => 'Options',
'value' => function ($dataProvider, $index, $widget) {
$op = ArrayHelper::map(Option::find([['id', 'option']])
->joinWith(['question as q'])
->where(['q.id' => $dataProvider->id])
->asArray()->all(), 'q.option_id', 'option');
return $form->field($model, 'option_id')
->radioList($op, array('class' => 'i-checks', 'form' => 'q'));
},
],
['class' => 'yii\grid\ActionColumn'],
],
]);
?>
<div class="form-group">
<?= Html::submitButton('Save', ['class' => 'btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php Pjax::end(); ?>
آیا این روش کلا درسته؟ این خطا برای من الان وجود داره :
Undefined variable: form
آیا درسته که من از 'value' برای ست کردن این کوئری استفاده کردم. من اینجا از گرید ویو استفاده کردم. شما چه پیشنهادی دارید برای ساخت چنین فرمی؟