【问题标题】:Yii form Text Field and CHtml Query: how to get single data by CHtml Query into Text FieldYii表单文本字段和CHtml查询:如何通过CHtml查询将单个数据放入文本字​​段
【发布时间】:2014-01-06 06:10:17
【问题描述】:

希望你们一切都好。

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

例如我正在使用

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

但我想将单个数据放入文本文件中,以便用户可以编辑/更改数据。如:

<?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()... 我该如何解决这个问题。请帮我一些想法。

非常感谢您的帮助。

【问题讨论】:

    标签: php yii yii-extensions yii-components


    【解决方案1】:

    只需将 Purchaseorddt::model()->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'));   ?>
    

    【讨论】:

    • 我没听懂你。能否请您详细说明一下?
    • 更新了我的答案。立即检查,
    • findByAttributes(" pp_purordnum = ' $pp_purordnum'");
    • 立即尝试并确保在控制器操作中设置变量 pp_purordnum。
    • 它无法显示 array(pp_purordnum => $pp_purordnum) 的错误...我只是在那个 array("pp_purordnum = '$pp_purordnum' ") 然后它显示另一个错误表“pp_purchaseorddt”没有名为“0”的列
    【解决方案2】:

    在你的控制器中你可以放这样的代码

    $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

    【讨论】:

    • Getting ERROR Invalid argument provided for foreach()... 在 $purchaseorddt = Purchaseorddt::model()->findByAttributes("pp_purordnum = ' $pp_purordnum'");
    • 检查这个 $pp_purordnum 变量是否存在于控制器上?
    • 仅用于检查 echo $pp_purordnum;在 findByAttributes 语句之前。检查这个变量是否包含值。
    • 我只是回显 $pp_purordnum;然后它显示数据 PO1400000227
    • @SelimReza 抱歉,但我不明白您为什么会收到此错误。但按照我的逻辑,你在模型中赋值。
    【解决方案3】:

    只需像这样简单地调用控制器中的模型:

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

    该代码将自动填充文本字段中的值

    【讨论】:

    • 谢谢。我从“Rohan Reddy”那里得到了解决方案
    • 好的,selim,你是 yii framewok 论坛的成员吗?我也是那里的会员
    • 你能给我加入那里的链接吗?
    • 我的意思是,我曾经看到你是facebook.com/groups/yii.indonesia/.is 的成员,这是真的吗?因为我也是那里的会员。
    猜你喜欢
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多