Cakephp 3 - 数据库填充选择选项,其中包含自定义类和自定义属性

时间:2016-12-22 00:42:02

标签: cakephp cakephp-3.0

我希望我做得很好,我正在学习cakephp 3而且我被困住了。我在向每个选择器选项和自定义类添加自定义属性时遇到问题。

我现在拥有的是:

控制器

// Insercion datos EspMunicipios
    $this->loadModel('EspMunicipios');
    $camping = $this->EspMunicipios->CampingInfos->newEntity();

    // EspMunicipios
    $ResultMunicipio = $this->EspMunicipios->find('all',
                                        array(
                                            'fields'=>array('id','municipio','id_provincia'),
                                            'order' => ['EspMunicipios.municipio' => 'ASC']
                                            ));

    $row_options_municipios = array();
    $row_data_id_provincia = array();
    foreach($ResultMunicipio->toArray() as $key => $val){
        $row_options_municipios[$val['id']] = $val['municipio'];
    }

    $this->set('ResultMunicipio', $row_options_municipios);

    // Fin EspMunicipios

查看

echo $this->Form->select('id_municipio',$ResultMunicipio);

编辑(添加结果):

<option value="6537">Ababuj</option>

我想做的就是这个(我没有框架就这样做了):

<select class="form-control" id="municipio" name="municipio" disabled="disabled">

                <?php
                echo '<option value="0" selected="selected">Seleccione un municipio</option>';
                while ($line = $R_Municipios->fetch_row()) {
                    echo "<option class='hide' id='option_municipio' prov=".$line[2]." value=".$line[0].">";
                    echo $line[1];
                    echo "</option>";
                }

                // Liberar resultados
                $R_Municipios->free();
                ?>
            </select>

结果

<option class="hide" id='option_municipio' prov="3" value="6537" >Ababuj</option>

我想创建自定义属性“prov”或“data-prov”,还为每个选项和自定义ID分配“hide”类。我这样做是因为所有结果都将由jquery控制,将hide类更改为show。

我想知道如何为每个选择器选项添加自定义属性和自定义类,非常感谢。

1 个答案:

答案 0 :(得分:1)

我已经找到了解决方案抱歉,我在这里发帖帮助某人。

<强>控制器

    // Insercion datos EspMunicipios
    $this->loadModel('EspMunicipios');
    $camping = $this->EspMunicipios->CampingInfos->newEntity();

    // EspMunicipios
    $ResultMunicipio = $this->EspMunicipios->find('all',
                                        array(
                                            'fields'=>array('id','municipio','id_provincia'),
                                            'order' => ['EspMunicipios.municipio' => 'ASC']
                                            )); //or whatever conditions you want

    $row_options_municipios = array();
    foreach($ResultMunicipio->toArray() as $key => $val){

        $row_options_municipios[$val['id']] = array('text' => $val['municipio'], 'value' => $val['id'], 'class' => 'hide', 'data-prov' => $val['id_provincia'], 'id' => 'option_municipio');
    }

    $this->set('ResultMunicipio', $row_options_municipios);

    // Fin EspMunicipios

查看

echo $this->Form->input('id_municipio',array(
    'type' => 'select',
    'options' => $ResultMunicipio
    ));

<强>结果

<option value="6537" class="hide" data-prov="44" id="option_municipio">Ababuj</option>