【问题标题】:Zend Framerwork 1.9 populate checkbox from database queryZend Framework 1.9 从数据库查询中填充复选框
【发布时间】:2014-09-05 08:13:04
【问题描述】:

使用 Zend 框架 1.9。我在 db 中有一个包含许多列的表。我只获取某些列:

$select = $table->select();
$select->from($table, array('skill_id', 'description'))->where('parent_skill IS NULL');
$rows = $table->fetchAll($select);

print_r($rows->toArray());

//This is the output :
Array ( [0] => Array ( [skill_id] => 1 [description] => Soccorso stradale ) [1] => Array ( [skill_id] => 4 [description] => Carrozziere ))

现在我要填充一个复选框元素:

$form->skills->setMultiOptions ( $rows->toArray () );

我的问题是方法 setMultiOptions 期望一个数组 array(key=>value) 。 是否可以将我的 $rows 数组转换为格式正确的数组?

【问题讨论】:

    标签: php arrays database zend-framework checkbox


    【解决方案1】:

    尝试为这样的选项构造数组:

    $row_options = array();
    foreach($rows->toArray() as $key => $val){
        $row_options[$val['skill_id']] =  $val['description'];
    }
    
    $form->skills->setMultiOptions ($row_options);
    

    【讨论】:

      【解决方案2】:

      嗯,我猜是的

          foreach($rows->toArray() as $subArray){
              foreach($subArray as $val){
                  $newArray[] = $val;
              }
          } 
      print_r($newArray);die;
      

      【讨论】:

        【解决方案3】:

        你可以使用fetchPair

        ......

        $select->from($table, array('skill_id', 'description'))->where('parent_skill IS NULL');

        $rows = $table->fetchPair($select);

        $form->skills->setMultiOptions ($row_options);

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-12
          • 2011-01-29
          • 2014-12-14
          • 1970-01-01
          • 1970-01-01
          • 2012-09-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多