Yii表单文本字段和CHtml查询:如何通过CHtml查询将单个数据获取到文本字段中

时间:2014-01-06 06:10:18

标签: php yii yii-extensions yii-components

希望你们都做得很好。

关于我如何通过CHtml查询将单个数据导入文本字段的问题,我需要您的帮助。

例如我正在使用

<?php echo $form->dropDownList($model,'im_costprice', CHtml::listData(Purchaseorddt::model()->findAll(" pp_purordnum = '$pp_purordnum' "), 'pp_purchasrate', 'pp_purchasrate'), array('id'=>'purchasrate')); ?>

但我希望将单个数据导入textfiled,以便用户可以编辑/更改数据。如:

<?php echo $form->textField($model,'im_costprice', CHtml::Data(Purchaseorddt::model()->findByAttributes(" pp_purordnum = '$pp_purordnum' "), 'pp_purchasrate', 'pp_purchasrate'), array('id'=>'purchasrate')); ?>

显示错误。 致命错误:调用未定义的方法CHtml :: Data() ... 我该如何解决这个问题。请帮我一些想法。

非常感谢帮助。

3 个答案:

答案 0 :(得分:1)

只需将Purchaseorddt :: model() - &gt; findByAttributes部分的值存储在单独的变量中,并将该变量替换为CHtml :: Data部分。

编辑 - 这些行上的某些内容可行。请记住,这是在控制器或模型中进行查询的更好方法。

<?php $x = Purchaseorddt::model()->findByAttributes( array('pp_purordnum' => $pp_purordnum));
       $y = $x['pp_purchasrate'];
       $model->im_costprice = $y;
       echo $form->textField($model,'im_costprice',array('id'=>'purchasrate'));   ?>

答案 1 :(得分:0)

在您的控制器中,您可以输入类似的代码

$purchaseorddt = Purchaseorddt::model()->findByAttributes("pp_purordnum = '$pp_purordnum'");

然后分配如

if(!empty($purchaseorddt)) {
  $model->in_costproce = $purchaseorddt->pp_purchasrate;
}

然后在视图中使用

  echo $form->textField($model,'im_costprice', array('id'=>'purchasrate')); 

有关cactiveform textField http://www.yiiframework.com/doc/api/1.1/CActiveForm#telField-detail

的更多信息

答案 2 :(得分:0)

只需简单地在控制器中调用模型,如下所示:

$data = Purchaseorddt::model->findByPK($pp_purordnum);
$model->costprice=$data->pp_purordnum;

该代码将自动填充textfield中的值