【问题标题】:CHtml::listData() issueCHtml::listData() 问题
【发布时间】:2014-10-06 15:43:33
【问题描述】:

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

我的控制器操作代码是:

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 相同的查询有什么问题?

请解释一下。谢谢。

最好, 米拉拉。

【问题讨论】:

    标签: php mysql yii


    【解决方案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);
    ?>
    

    结果是一样的:))

    谢谢。

    【讨论】:

      【解决方案2】:

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

       ->select ('m.maraq')
      

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

      ->select ('*')
      

      【讨论】:

      • 2 个问题:1) 你的maraq 表的结构是什么? 2) 你能检查一下你的所有记录中idmaraq 字段是否不为空吗?
      • 1) 在 maraq 表中我有 3 列:idsinifintidmaraqintmaraqvarchar(250) 2) @987654337 的记录@ 从表格 1 开始,没有任何空记录。
      • 要获得所需的结果,您的$sql 数组应包含idmaraq 键,即print_r($sql) 的结果必须大致类似于Array ( [0] =&gt; Array ( [idmaraq] =&gt; 1 [maraq] =&gt; Şəxsi sağlamlıq sistemləri ) [1] =&gt; Array ( [idmaraq]=&gt; 2 [maraq] =&gt; Xəstələrin təhlükəsizliyi üçün İKT ) ...
      猜你喜欢
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多