下面是_form.php(仅限条件)
<?php if($model->certified =='n') : ?>
<?= $form->field($modelqm, 'q1')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q2')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q3')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q4')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q5')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q6')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q7')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q8')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q9')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q10')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q11')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q12')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q13')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q14')->textInput(['maxlength' => true]) ?>
<?= $form->field($modelqm, 'q15')->textInput(['maxlength' => true]) ?>
<?php else: ?>
<?= $form->field($modelqm, 'q16')->textInput() ?>
<?= $form->field($modelcertificate, 'description')->dropDownList(
ArrayHelper::map(CertificateDescription::find()->all(),'description','description'),
[ 'prompt'=>'select desc',
]); ?>
<?= $form->field($modelcertificate, 'types')->dropDownList(
ArrayHelper::map(CertificateType::find()->all(),'type','type'),
[ 'prompt'=>'select type',
]); ?>
<?= $form->field($modelcertificate, 'file')->fileInput() ?>
<?= $form->field($modelcertificate, 'validity')->textInput() ?>
<?php endif; ?>
上面的代码工作正常(一旦表更新,导航到视图)。但是,当我更改 else 语句的位置时,就是在 *字段($ modelqm,&#39; q16&#39;) - &gt; textInput()?&gt;之后放置其他内容* (紧接下一行之后)更新没有发生。它只是使用输入的新值重新加载更新表单(页面),但这些值不会保存到数据库表中。
**我已经检查了div标签我没有任何未关闭的标签。在if和else条件下互换内容,但它没有解决问题。
这种行为可能是什么原因?有谁遇到过这种问题?我该如何解决这个问题
更新行动: -
public function actionUpdate()
{
$id = Yii::$app->user->getId();
$command = (new \yii\db\Query())
->select(['id'])
->from('supplier')
->where(['user_id' => $id])
->createCommand();
// returns all rows of the query result
$rows = $command->queryAll();
$model = $this->findModel($rows);
$id1 = $model->id;
$command1 = (new \yii\db\Query())
->select(['id'])
->from('supplier_noqm')
->where(['supplier_id' => $id1])
->createCommand();
// returns all rows of the query result
$rows1 = $command1->queryAll();
$modelqm = $this->findModel1($rows1);
$command2 = (new \yii\db\Query())
->select(['id'])
->from('supplier_certificate')
->where(['supplier_id' => $id1])
->createCommand();
// returns all rows of the query result
$rows2 = $command2->queryAll();
$modelcertificate = $this->findSupplierCertificateModel($rows2);
$modelsSupManpower = $model->supManpowers;
$modelsSupCompanyid = $model->supCompanies;
$modelsSupOtherplace = $model->supOtherplaces;
if ($model->load(Yii::$app->request->post()) && $modelqm->load(Yii::$app->request->post()) && $modelcertificate->load(Yii::$app->request->post())) {
var_dump($model->validate(), $model->errors);die;
$user = $this->findUserModel($model->user_id);
$user->pin = $model->pin;
$user->country = $model->country;
$user->state = $model->state;
$user->city = $model->city;
$user->save();
$oldIDs = ArrayHelper::map($modelsSupManpower, 'id', 'id');
$modelsSupManpower = Model::createMultiple(SupManpower::classname(), $modelsSupManpower);
Model::loadMultiple($modelsSupManpower, Yii::$app->request->post());
$deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsSupManpower, 'id', 'id')));
$oldIDs = ArrayHelper::map($modelsSupCompanyid, 'id', 'id');
$modelsSupCompanyid = Model::createMultiple(SupCompanyid::classname(), $modelsSupCompanyid);
Model::loadMultiple($modelsSupCompanyid, Yii::$app->request->post());
$deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsSupCompanyid, 'id', 'id')));
$oldIDs = ArrayHelper::map($modelsSupOtherplace, 'id', 'id');
$modelsSupOtherplace = Model::createMultiple(SupOtherplace::classname(), $modelsSupOtherplace);
Model::loadMultiple($modelsSupOtherplace, Yii::$app->request->post());
$deletedIDs = array_diff($oldIDs, array_filter(ArrayHelper::map($modelsSupOtherplace, 'id', 'id')));
// ajax validation
if (Yii::$app->request->isAjax) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ArrayHelper::merge(
ActiveForm::validateMultiple($modelsSupManpower),
ActiveForm::validateMultiple($modelsSupOtherplace),
ActiveForm::validate($model)
);
}
// validate all models
$valid = $model->validate();
$valid = $modelqm->validate() && $valid;
$valid = $modelcertificate->validate() && $valid;
$valid = Model::validateMultiple($modelsSupManpower) && $valid;
$valid = Model::validateMultiple($modelsSupCompanyid) && $valid;
$valid = Model::validateMultiple($modelsSupOtherplace) && $valid;
if ($valid) {
$transaction = \Yii::$app->db->beginTransaction();
try {
if ($flag = $model->save(false)) {
$modelqm->supplier_id = $model->id;
$modelcertificate->supplier_id = $model->id;
$modelqm->save(false);
if ($modelcertificate->file = UploadedFile::getInstance($modelcertificate, 'file')) {
$name = Yii::$app->user->identity->username;
$randnum = rand(pow(10, 5 - 1), pow(10, 5) - 1);
$imageName = $name . $randnum;
//$path = 'machinephotos/'.$imageName.'.'.$model->image->extension;
$modelcertificate->file->saveAs('certuploads/' . $imageName . '.' . $modelcertificate->file->extension);
$modelcertificate->filename = 'certuploads/' . $imageName . '.' . $modelcertificate->file->extension;
$modelcertificate->file = null;
$modelcertificate->save(false);
}
$model->file = null;
if (!($flag = $modelcertificate->save(false))) {
$transaction->rollBack();
}
if (!empty($deletedIDs)) {
SupManpower::deleteAll(['id' => $deletedIDs]);
}
foreach ($modelsSupManpower as $modelSupManpower) {
$modelSupManpower->supplier_id = $model->id;
if (!($flag = $modelSupManpower->save(false))) {
$transaction->rollBack();
break;
}
}
if (!empty($deletedIDs)) {
SupCompanyid::deleteAll(['id' => $deletedIDs]);
}
foreach ($modelsSupCompanyid as $modelSupCompanyid) {
$modelSupCompanyid->supplier_id = $model->id;
if (!($flag = $modelSupCompanyid->save(false))) {
$transaction->rollBack();
break;
}
}
if (!empty($deletedIDs)) {
SupOtherplace::deleteAll(['id' => $deletedIDs]);
}
foreach ($modelsSupOtherplace as $modelSupOtherplace) {
$modelSupOtherplace->supplier_id = $model->id;
if (!($flag = $modelSupOtherplace->save(false))) {
$transaction->rollBack();
break;
}
}
}
if ($flag) {
$transaction->commit();
return $this->redirect(['view', 'id' => $model->id]);
}
} catch (Exception $e) {
$transaction->rollBack();
}
}
}
$model->load(Yii::$app->request->get());
$model->production_scope = ArrayHelper::map($model->parts, 'part_name', 'part_name');
$model->target_industry = ArrayHelper::map($model->industries, 'name', 'name');
$model->material = ArrayHelper::map($model->materials, 'name', 'name');
$model->inspection_specialities = ArrayHelper::map($model->inspections, 'name', 'name');
return $this->render('update', [
'model' => $model,
'modelqm' => $modelqm,
'modelcertificate' => $modelcertificate,
'modelsSupManpower' => (empty($modelsSupManpower)) ? [new SupManpower] : $modelsSupManpower,
'modelsSupCompanyid' => (empty($modelsSupCompanyid)) ? [new SupCompanyid] : $modelsSupCompanyid,
'modelsSupOtherplace' => (empty($modelsSupOtherplace)) ? [new SupOtherplace] : $modelsSupOtherplace
]);
}