YII:如何在模型中执行读取查询数据库,但是按视图文件中的值执行

时间:2015-04-21 03:41:46

标签: php ajax yii

我的表单中有一个带有自动填充值的文本字段textfield1。我想在我的模型中创建一个函数来生成textfield2作为ID的代码。为了生成该代码,在我的模型中,我需要使用以下查询从数据库中读取:

select * table_a where code=***value from textfield1***

此值位于view / _form中。如何将视图或_form中的值传递给模型?

我的观点/表格:

// this is the textfield that is filled automatically. I want to it to the model
 <div class="row">
    <?php echo $form->labelEx($model,'kode'); ?>
    <?php echo $form->textField($model,'kode',array('size'=>40,'maxlength'=>255)); ?>
    <?php echo $form->error($model,'kode'); ?>
</div>

 // this is the text field where I want to fill by query in my model
<div class="">
    <?php echo $form->labelEx($model,'kode_primary'); ?>
    <?php echo $form->textField($model,'kode_primary',array('size'=>40,'maxlength'=>255,'value'=>(($model->isNewRecord)? $model->generateKode_P():$model->no),'readOnly'=>'true')); ?>
    <?php echo $form->error($model,'kode_primary'); ?>

    

我的模特:

 public function generateKode_P(){
    $connection = yii::app()->db;
    $command=$connection->createCommand("select * from arsip_perihal WHERE kode='I want to get value from another textfield where has generated value located in same view/_Form'");
 }

1 个答案:

答案 0 :(得分:0)

首先你必须提交表单,因为服务器不知道该值,然后在你的控制器中捕获该值,类似于你的控制器的默认actionCreate()actionUpdate()函数

因为您使用了有效输入,例如,如果您的模型名称为User,则该值可能位于$_POST['User']['kode_primary']$_GET['User']['kode_primary']变量中,具体取决于您的表单发送方式是

最好通过yii的默认功能获取该变量:

$user_attr = Yii::app()->request->getParam('User');
// now you can access it like
$user_attr['kode_primary'];