#zend-framework #dojo
#zend-framework #dojo
Вопрос:
Привет, кто-нибудь может, пожалуйста, сказать мне, почему следующий код возвращает только одно значение 2, bath
Действие автозаполнения с моего контроллера
public function groomappointserviceAction()
{
$this->_helper->layout->disableLayout();
$this->getHelper('viewRenderer')->setNoRender(true);
// get a list of all grooming services IDs and related procedures
$gqry= Doctrine_Query::create()
->select('g.groomServicesID AS iden , p.groomprocedure AS name')
->from('PetManager_Model_Groomservices g')
->leftJoin('g.PetManager_Model_Groomprocedures p');
$result = $gqry->fetchArray();
//generate and return JSON string
$data = new Zend_Dojo_Data('iden',$result);
echo $data->toJson();
}
filteringselect моей формы
// Create a autocomplete select input for the grooming
$gservice = new Zend_Dojo_Form_Element_FilteringSelect('gapmtService');
$gservice->setLabel('Proceedure');
$gservice->setOptions(array(
'autocomplete' => true,
'storeID' => 'groomappointserviceStore',
'storeType' => 'dojo.data.ItemFileReadStore',
'storeParams' => array('url' => "/groomappointments/appointment/groomappointservice"),
'dijitParams' => array('searchAttr' => 'name')))
->setRequired(true)
->addValidator('NotEmpty', true)
->addFilter('HTMLEntities')
->addFilter('StringToLower')
->addFilter('StringTrim');
Когда тот же (я полагаю) запрос в MySQL возвращает
mysql> select g.groomservicesid AS iden , p.groomprocedure as name
-> from groomservices AS g LEFT JOIN groomProcedures AS p
-> on g.groomProcedure = p.groomProceduresID;
------ --------------------------
| iden | name |
------ --------------------------
| 2 | Bath |
| 7 | Bath |
| 8 | Bath |
| 9 | Bath |
| 1 | Nail Clip |
| 4 | Nail Clip |
| 5 | Nail Clip |
| 6 | Nail Clip |
| 19 | Shed Less |
| 20 | Shed Less |
| 21 | Shed Less |
| 22 | Shed Less |
| 13 | Dematting/Hand Stripping |
| 14 | Dematting/Hand Stripping |
| 15 | Dematting/Hand Stripping |
| 16 | Dematting/Hand Stripping |
| 17 | Dematting/Hand Stripping |
| 18 | Dematting/Hand Stripping |
| 3 | Bath Brush |
| 10 | Bath Brush |
| 11 | Bath Brush |
| 12 | Bath Brush |
------ --------------------------
22 rows in set (0.00 sec)
Комментарии:
1. У кого-нибудь есть идея, где я облажался?
Ответ №1:
Хорошо, я фактически отсортировал это, изменив код на приведенный ниже. Не уверен, почему это сейчас работает, поскольку я пробовал это ранее, но это не сработало.
Мое действие автозаполнения
public function groomappointserviceAction()
{
$this->_helper->layout->disableLayout();
$this->getHelper('viewRenderer')->setNoRender(true);
// get a list of all grooming services IDs and related procedures
$gqry= Doctrine_Query::create()
->select('g.groomServicesID, p.groomprocedure AS name')
->from('PetManager_Model_Groomservices g')
->leftJoin('g.PetManager_Model_Groomprocedures');
$result = $gqry->fetchArray();
//generate and return JSON string
$data = new Zend_Dojo_Data('groomServicesID',$result);
echo $data->toJson();
}
Выбор FilteringSelect в моей форме
// Create a autocomplete select input for the grooming
$gservice = new Zend_Dojo_Form_Element_FilteringSelect('gapmtService');
$gservice->setLabel('Proceedure');
$gservice->setOptions(array(
'autocomplete' => true,
'storeID' => 'groomappointserviceStore',
'storeType' => 'dojo.data.ItemFileReadStore',
'storeParams' => array('url' => "/groomappointments/appointment/groomappointservice"),
'dijitParams' => array('searchAttr' => 'name')))
->setRequired(true)
->addValidator('NotEmpty', true)
->addFilter('HTMLEntities')
->addFilter('StringToLower')
->addFilter('StringTrim');