首頁  >  問答  >  主體

Yii2下拉清單值未被持久化到資料庫

我建立了一個名為AssignForm的模型:

<?php

namespace app\models;

use yii\db\ActiveRecord;

class AssignForm extends ActiveRecord
{
public $username;
public $organ_name;
public $role;

}

然後我在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]);

    }

我還有一個名為assign.phpview檔:

<?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(); ?>

這顯示了正確的訊息,但不會保存到資料庫。但是當我在actionAssign中使用下面的程式碼時,它正常工作:

Yii::$app->db->createCommand()
                ->update('users', ['post' => 'ssss'], "username = 'soghra' ")
                ->execute();

但我想要使用資料庫資訊來寫。如何動態新增到資料庫?

P粉182218860P粉182218860404 天前667

全部回覆(1)我來回復

  • P粉729518806

    P粉7295188062023-09-13 00:39:15

    它沒有任何技術問題...我只是傳遞了錯誤的參數(username而不是id)。 對此表示抱歉。

    如下:

    Yii::$app->db->createCommand()
                ->update('users', ['post' => 'ssss'], "id = 'soghra' ")
                ->execute();

    希望對你有幫助。

    回覆
    0
  • 取消回覆