我正在尝试创建一个 AJAX 表单,其中选择字段的内容根据前面选择字段的选择进行填充(您会在“国家”填充“州/省”时看到很多)。province
就我而言,我希望用户只有在其中存在活动时才能选择他们accounts
。
我可以写的Javascript没有问题。获取数据是我的工作……与其说是做太多工作,不如说是卡住了。CakePHP 喜欢在表单数组中构建带有选项的选择字段
$options = array(select_option_value => display_text)
我的策略虽然是功能性的,但必须比蛋糕预期的更复杂(这是控制器方法的一部分)。
$provinceData = $this->Account->find('all',array('recursive' => 0,
'joins' => array(
array(
'table' => 'provinces',
'type' => 'LEFT',
'conditions' => array('Account.province_id = provinces.id')
)),
'fields'=>array('provinces.id', 'provinces.name', 'provinces.abbrev'),
'conditions' => array('registration > 2')));
$provinces = array();
foreach($provinceData as $pd) {
/*note: lowercase, plural below b/c can't get 'alias' => 'Province'
to work in joins array above : ( */
$id = $pd['provinces']['id'];
$name = $pd['provinces']['name'];
$provinces[$id] = $name;
}
$this->set(compact('provinces'));
谁能指出一个更合适的方法来做到这一点?我认为必须有一个 MySQL 查询可以做到这一点,但我一开始就不擅长编写复杂的 MySQL 查询,更不用说通过 Cake 的约定了(而且,对于你的 MySQL 专家,我很乐意这样做这来自一个Model->query(//MySQL code)
电话!
任何和所有的帮助真的很感激。