如何基于数据库表创建动态表单助手?

时间:2013-02-21 05:57:09

标签: cakephp helper

使用cakephp 2.3.0 帮助者的条件是: 1)我需要以多种形式使用多个下拉框,我不想在每个控制器中执行loadModel(12) 2)需要从数据库表中获取数据 3)我在考虑不为表格烘焙文件。 4)想要使用自定义mysql查询。

例如,我有一个名为countries的表格,下拉列表应为key =>缩写名称和名称=>全名。

任何建议都将受到赞赏..

1 个答案:

答案 0 :(得分:1)

我在帮助器中创建了一个函数 `

public function getDropDownList($table,$key,$value)
    {
        //$db =& ConnectionManager::getDataSource('default');
        $fields = $key.','.$value;
        $CommercialHeaders =& ClassRegistry::init('tablename');
        $sql = $CommercialHeaders->query('select '.$fields.' from '.$table.' as DropDown');
        foreach($sql as $val)
        {
            $countryList[$val['DropDown'][$key]] = $val['DropDown'][$value];    

        }
        //debug($countryList);
        return $countryList;    
    }

` 并通过传递表名和字段从视图中调用它,这将生成一个数组,以便它解决我的问题,而无需在appcontroller中设置或使用requestAction