Saya mencipta model yang dipanggil AssignForm
:
<?php namespace app\models; use yii\db\ActiveRecord; class AssignForm extends ActiveRecord { public $username; public $organ_name; public $role; }
Kemudian fungsi saya dalam SiteController
中添加了一个名为actionAssign
:
public function actionAssign(){ $model = new AssignForm(); if($model->load(Yii::$app->request->post()) && $model->validate()){ Yii::$app->db->createCommand() ->update('users', ['post' => $model->post], "username = '$model->username' ") ->execute(); } return $this->render('assign',['model' => $model]); }
Saya juga mempunyai fail bernama assign.php
的view
:
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; ?> <?php $form = ActiveForm::begin(); ?> <?php echo $form->field($model, 'username')->dropDownList(\yii\helpers\ArrayHelper::map(\app\models\Users::find()->all(),'id','username'), [ 'prompt' => 'Select User!!' ]); echo $form->field($model, 'role')->dropDownList(['0' => 'employee', '1' => 'responsible'],['prompt'=>'Select Option']); ?> <div class="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?>
Ini memaparkan maklumat yang betul tetapi tidak disimpan ke pangkalan data. Tetapi apabila saya menggunakan kod di bawah dalam actionAssign
ia berfungsi dengan baik:
Yii::$app->db->createCommand() ->update('users', ['post' => 'ssss'], "username = 'soghra' ") ->execute();
Tetapi saya ingin menulis menggunakan maklumat pangkalan data. Bagaimana untuk menambah pangkalan data secara dinamik?
Tiada masalah teknikal dengannya... Saya hanya melepasi parameter yang salah (
username
而不是id
). Maaf tentang itu.Seperti yang ditunjukkan di bawah:
Semoga ia membantu anda.