Yii2下拉列表值未被持久化到数据库
P粉182218860
P粉182218860 2023-09-12 12:44:28
[MySQL讨论组]

我创建了一个名为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粉182218860
P粉182218860

全部回复(1)
P粉729518806

它没有任何技术问题...我只是传递了错误的参数(username而不是id)。 对此表示抱歉。

如下所示:

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

希望对你有帮助。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号