php 将控制器数据发送到Yii中的表单域

huus2vyu  于 2023-02-18  发布在  PHP
关注(0)|答案(4)|浏览(145)

已更新解决方案:::现在正在运行

我已经创建了一个带有连接查询的控制器。现在我想将控制器包含到actionCreate函数中,并将数据显示到表单中的文本字段中。

控制器

public function actionCreate()
{
    $model=new Grndetail;

    if (isset($_POST['Grndetail'])) {
        $model->attributes=$_POST['Grndetail'];
        if ($model->save())
            $this->redirect(array('view','id'=>$model->id));
    }

    $grndata = $this->GrnData1();
    $model->im_grnnumber = $grndata['im_grnnumber'];
    $this->render('create',array('model'=>$model, 'grndata'=>$grndata,));
}


public function GrnData1()
{               
    $sql = Yii::app()->db->createCommand()
              ->select('t.im_grnnumber, t.im_purordnum, r.pp_purordnum, r.cm_code, r.pp_quantity, r.pp_unit, r.pp_unitqty, r.pp_purchasrate, p.cm_description, p.cm_code')
              ->from('im_grnheader t')
              ->join('pp_purchaseorddt r', 't.im_purordnum = r.pp_purordnum')
              ->join('cm_productmaster p', 'p.cm_code = r.cm_code')
             //->where('id=:id', array(':id'=>$id))
              ->order('im_grnnumber DESC')
              ->queryRow();

     return $sql;
}

表格已存档

<?php echo $form->textField($model,'im_grnnumber'); ?>

是我缺少的东西。当我在创建一些东西时,我如何才能将数据视为形式中的值。
先谢了。

已更新解决方案:::现在正在运行

56lgkhnf

56lgkhnf1#

您应该将程序更改为

public function GrnData1(){

$sql = Yii::app()->db->createCommand()->setFetchMode(PDO::FETCH_OBJ) // change it

->select('t.im_grnnumber, t.im_purordnum, r.pp_purordnum, r.cm_code, r.pp_quantity,  r.pp_unit, r.pp_unitqty, r.pp_purchasrate, p.cm_description, p.cm_code')

->from('im_grnheader t')
->join('pp_purchaseorddt r', 't.im_purordnum = r.pp_purordnum')
->join('cm_productmaster p', 'p.cm_code = r.cm_code')
->order('im_grnnumber DESC')
->queryRow();

Return $sql; // write here return statement

}

现在,您可以像这样访问数据

echo $form->textField($model,'im_grnnumber', array('value'=>$grndata->im_grnnumber));

希望,它会帮助你。
谢谢

qfe3c7zg

qfe3c7zg2#

Var $grndata是一个数组,不是一个模型,所以正确的方法应该是这样的:

<?php echo $form->textField($model,'im_grnnumber', array('value'=>$grndata['im_grnnumber']) ); ?>

或者类似的东西,我不确定queryRow()返回的数组的格式,也许print_r($grndata)可以查看数组的样式。

oug3syen

oug3syen3#

将操作GrnData1()更改为GrnData1()

ffx8fchx

ffx8fchx4#

您应该按如下方式填写文本字段

<?php echo $form->textField($model,'im_grnnumber',
array('value'=>$grndata->im_grnnumber
)); ?>

相关问题