0
フォームには2つのモデルがあります。 1つのモデルがマスターであり、1つのモデルが接合テーブル(モデル)として表されています。yii2のチェックボックスフォームでの検証
内容:
request_table : $model,
link_req_tipe : $modelLinkReqTipe;
私の目標は、
- は、私はその後、私は$モデル - > ID
Iバッチ挿入を取得し、$モデルを保存し、ありますto link_req_item
id_request = $モデル - > IDとid_tipe = modelLinkReqTipe-> id_tipe
は、ここでは、PHPである:多くの入力、多くの理由
_form.php(単なる例、
フォーム)<?= $form->field($model, 'karyawan_id')->dropDownList(
ArrayHelper::map(Karyawan::find()->all(), 'id', 'first_name'), ['prompt' => 'Select Karyawan'])
?>
<?= $form->field($modelLinkReqTipe, 'id_tipe')->checkBoxList(ArrayHelper::map(TipeRequest::find()->all(), 'id', 'nama_tipe'));
?>
RequestController
if ($model->load($request->post()) && $modelLinkReqTipe->load(Yii::$app->request->post())) { $valid = $model->validate(); $valid = $modelLinkReqTipe->validate() && $valid; if ($valid) { ## Check validate : true $transaction = Yii::$app->db->beginTransaction(); try { if ($flag = $model->save(false)) { foreach ($modelLinkReqTipe as $index => $modelLinkReqTipe) { if ($flag === false) { break; } $modelLinkReqTipe->id_request = $model->id; if (!($flag = $modelLinkReqTipe->save(false))) { break; } } } if ($flag) { $transaction->commit(); } else { $transaction->rollBack() } } catch (\Exception $e) { $transaction->rollBack(); } return [ 'forceReload' => '#crud-datatable-pjax', 'title' => "Create new Request", 'content' => '<h1 class="text-success">Success</h1>, 'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"]) . Html::a('Create More', ['create'], ['class' => 'btn btn-primary', 'role' => 'modal-remote']) ]; }else{ ## Check validate : false return [ 'title' => "Create New Request", 'content' => $this->renderAjax('create', [ 'model' => $model, 'modelLinkReqTipe' => (empty($modelLinkReqTipe)) ? new LinkReqTipe() : $modelLinkReqTipe, 'modelLinkReqItem' => (empty($modelLinkReqItem)) ? [new LinkReqItem] : $modelLinkReqItem, ]), 'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"]) . Html::button('Save', ['class' => 'btn btn-primary', 'type' => "submit"]) ]; }
今、検証に問題があります。 送信時に常にfalseが返されます。 お願いします。