CHtml :: listData()问题

时间:2014-10-06 15:43:34

标签: php mysql yii

我想列出数组检索到它们的复选框..

我的控制器操作代码是:

public function actionSech ($radio)
{
    $sql = Yii::app()->db->createCommand()
                ->select ('m.maraq')
                ->from ('maraq m')
                ->where ('m.idsinif=:ids', [':ids'=>$radio])
                ->queryAll();
    $this->renderPartial('sech', array('sql'=>$sql));
}

sech.php

<style>
    .multiselect-group{display: none !important;}
</style>
<?php
    print_r($sql);
    $cat = CHtml::listData($sql, 'idmaraq', 'maraq');
    print_r($cat);
?>

print_r($sql);结果为:

> Array ( [0] => Array ( [maraq] => Şəxsi sağlamlıq sistemləri ) [1] =>
> Array ( [maraq] => Xəstələrin təhlükəsizliyi üçün İKT ) [2] => Array (
> [maraq] => Virtual fizioloji insan ) [3] => Array ( [maraq] =>
> "Virtual fizioloji insan" sahəsində beynəlxalq əməkdaşlıq ) )

print_r($cat);结果为:

> Array ( [] => "Virtual fizioloji insan" sahəsində beynəlxalq
> əməkdaşlıq )

所以,我无法理解; $cat不会返回与$sql相同的查询的问题是什么?

请解释一下。感谢。

最佳, Mirjalal。

2 个答案:

答案 0 :(得分:1)

我发现了问题。

编辑代码:

<强>动作

public function actionSech ($radio)
{
    $maraq = new Maraq();
    $sql = Yii::app()->db->createCommand()
        ->select('maraq')
        ->from('maraq m')
        ->where('m.idsinif=:ids', [':ids' => $radio])
        ->queryAll();

    $this->renderPartial('sech', array('sql' => $sql, 'maraq'=>$maraq));
}

查看文件

<?php
    print_r($sql);
    $cat = CHtml::listData($maraq->findAll(), 'idsinif', 'maraq');
echo "<br>";
echo "<br>";
echo "<br>";
    print_r($cat);
?>

结果是一样的:))

感谢。

答案 1 :(得分:0)

CDbCommand::queryAll返回的关联数组仅包含字段maraq,不包含字段idmaraq,指定为函数CHtml::listData的第二个参数。因此,尝试更改行

 ->select ('m.maraq')

->select ('m.idmaraq, m.maraq')

->select ('*')