好的,我正在尝试制作调查工具。
所以,我有一个参考N个问题的调查模型。这是该模型的一部分:
<?php
namespace app\models;
use Yii;
/**
* @return \yii\db\ActiveQuery
*/
public function getIdmateria0()
{
return $this->hasOne(Monmateria::className(), ['id' => 'idmateria']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getMonpreguntas()
{
return $this->hasMany(Monpregunta::className(), ['idencuesta' => 'id']);
}
}
当然,问题的模型Monpregunta参考了调查的模型。然后我在调查和他的问题之间有1到N的关系。
在我的ActionView中,我有一个关于它的N个问题的调查。然后我调用一个调查视图,在其上呈现创建表单视图,以便创建调查的N个答案。所以,一旦回答问题,我需要知道问题的数量。我需要跟踪我正在响应的问题数量,但是对于它我需要从表单向我的控制器发送一个参数。但我不知道该怎么做。
控制器(这里我需要跟踪哪些问题得到回复)
public function actionView($id)
{
//this is my id's survey
$model = $this->findModel($id);
//here i pre create my answer
$modelResultado = $this->crearResultado($id);
//here i call the view with a Create Form embedded. When the form action it's triggered
return $this->render('view', [
'model' => $model,
'modelResultado'=>$modelResultado,
'orden'=>$model->orden,
]);
}
//create the answer and setting the reference
protected function crearResultado($id) {
$modelResul = new \app\models\Monresultado;
$modelResul->idmonresultadocab = $id;
if ($modelResul->load(Yii::$app->request->post()) && $modelResul->save()) {
//flash
}
return $modelResul;
}
视图
<?php
use yii\helpers\Html;
use yii\widgets\DetailView;
/**
* @var yii\web\View $this
* @var app\models\Monresultadocab $model
*/
?>
<div class="monresultadocab-view">
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'id',
'idencuesta',
],
]) ?>
<?php
echo $this->render('_formResultado', [
'model' => $modelResultado
]); ?>
</div>
[b]这是_formResultado视图,在这里我想告诉我们哪些问题已被回复,但我不知道如何将参数发送到动作!! [ / b]
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
/**
* @var yii\web\View $this
* @var app\models\Monresultado $model
* @var yii\widgets\ActiveForm $form
*/
?>
<div class="monresultado-form">
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'idrespuesta')->dropDownList(ArrayHelper::map(\app\models\Monrespuesta::find()->all(),'id','nombre'))?>
<?= $form->field($model, 'libre')->textInput(['maxlength' => 2000]) ?>
<div class="form-group">
[b]<?= Html::submitButton($model->isNewRecord ? 'Siguiente' : 'Siguiente', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>[/b]
</div>
<?php ActiveForm::end(); ?>
</div>
如果我在Html :: submitButton标记中发送参数,它就不起作用。
由于
答案 0 :(得分:0)
我想你应该在控制器的actionView中传递相应问题的id 像:
return $this->render('view', [
'model' => $this->findModel($id),
......
......
]);
希望它有效!