J'ai créé un modèle appeléAssignForm:
Puis ma fonction dansSiteController中添加了一个名为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]); }
J'ai aussi un fichier appeléassign.php的view:
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']); ?> = Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
Cela affiche les informations correctes mais ne les enregistre pas dans la base de données. Mais quand j'utilise le code ci-dessous dansactionAssign, cela fonctionne bien :
Yii::$app->db->createCommand() ->update('users', ['post' => 'ssss'], "username = 'soghra' ") ->execute();
Mais je veux écrire en utilisant les informations de la base de données. Comment ajouter dynamiquement à la base de données ?
Il n'y a aucun problème technique avec ça... Je passe juste les mauvais paramètres (
username而不是id). Désolé pour ça.Comme indiqué ci-dessous :
Yii::$app->db->createCommand() ->update('users', ['post' => 'ssss'], "id = 'soghra' ") ->execute();J'espère que cela vous aidera.