我正在使用sfWidgetFormDoctrineChoice
在表單中構建選擇元素。這是我如何使用:sfWidgetFormDoctrineChoice:錯誤,錯誤還是什麼?
// Fill maquinaemisorid
$this->widgetSchema['maquinaemisorid'] = new sfWidgetFormDoctrineChoice(array('model' => 'SdrivingMaquina', 'add_empty' => 'Seleccione una Máquina', 'table_method' => 'fillChoice'));
// Fill idoperador
$this->widgetSchema['idoperador'] = new sfWidgetFormDoctrineChoice(array('model' => 'SdrivingOperador', 'add_empty' => 'Seleccione un Operador', 'table_method' => 'fillChoice'));
// Fill idturno
$this->widgetSchema['idturno'] = new sfWidgetFormDoctrineChoice(array('model' => 'SdrivingTurno', 'add_empty' => 'Seleccione un Turno', 'table_method' => 'fillChoice'));
對於第一配件全部是罰款和值從DB作爲應但是對於第二個和第三個是行不通的。您可能會注意到我在所有小部件table_method
中調用方法fillChoice
。這是三碼:
SdrivingMaquinaTable.class.php
public function fillChoice() {
$id_empresa = sfContext::getInstance()->getUser()->getGuardUser()->getSfGuardUserProfile()->getIdempresa();
return Doctrine_Core::getTable('SdrivingMaquina')->createQuery('a')->where('a.idempresa = ?', $id_empresa)->execute();
}
SdrivingOperadorTable.class.php
public function fillChoice() {
$id_empresa = sfContext::getInstance()->getUser()->getGuardUser()->getSfGuardUserProfile()->getIdempresa();
return Doctrine_Core::getTable('SdrivingOperador')->createQuery('a')->where('a.idempresa = ?', $id_empresa)->execute();
}
SdrivingTurno.class.php
public function fillChoice() {
$id_empresa = sfContext::getInstance()->getUser()->getGuardUser()->getSfGuardUserProfile()->getIdempresa();
return Doctrine_Core::getTable('SdrivingTurno')->createQuery('a')->where('a.idempresa = ?', $id_empresa)->execute();
}
的方法始終是相同的只是改變用於每個類表。我檢查生成的查詢,並且都很好,如果我在phpMyAdmin上運行每個查詢,例如多於一個值在idoperador
和idturno
中被提取,只是呈現最新的值。這是非常罕見的行爲,我無法找到錯誤或錯誤,所以我需要一些幫助或建議。
作爲ADITION我SdrivingRegistrosEmisoresForm.class.php
想這(這是正在生成的小部件位置):
$id_empresa = $this->current_user->getSfGuardUserProfile()->getIdempresa();
$choices_operador = Doctrine_Core::getTable('SdrivingOperador')->createQuery('a')->where('a.idempresa = ?', $id_empresa)->execute();
$this->widgetSchema['idoperador'] = new sfWidgetFormSelect(array('choices' => $choices_operador));
而且這種方式工作得很好,但id
每個項目的獲取是不正確的含義:
id item real_id
0 Item1 2
1 Item2 16
2 Item4 3
我在這裏討論了這個topic但是沒有得到任何答案,有什麼幫助嗎?