Использование переменной из формы в запросе - PullRequest
1 голос
/ 08 февраля 2012

Я пытаюсь запросить название отдела из одной таблицы, используя идентификатор, отправленный из отправки формы в другую таблицу, сопоставив идентификатор из отправки формы с идентификатором в таблице Департамента.

$deptQuery =  $form->getValue('department_id');

      $q = Doctrine_Query::create()
        ->select('d.name')
        ->from('Department d')
        ->where('id = ?', $deptQuery)
        ->execute();
      ;
echo $q;

Это мой вывод:

<code><pre>
Doctrine_Collection
data : Array(
   0 : Object(Department)
)

Я могу заставить переменную Department_id отображаться так:

$deptQuery =  $form->getValue('department_id');
echo $deptquery;

Он покажет правильный идентификатор:

 5 (for example)

Как мне написать запрос, чтобы он взял отправленную форму Department_id и сопоставил ее с идентификатором в таблице Department и вывел название отдела?

то есть вместо 5, он выводит отдел фотографии.

Это было решено здесь . Извините за мою любительскую публикацию.

Мне просто нужно было обрезать массив до одного возврата и вытащить первый.

$dept = $q->fetchOne();
$dept = $q->execute()->getFirst();

1 Ответ

1 голос
/ 09 февраля 2012

Существует вызов метода find () , который делает именно то, что вы хотите ... используйте его так:

$dept = Doctrine_Core::getTable('Department')->find($id);

Параметр $id должен быть первичным ключом- что в вашем случае это (я предполагаю).Это вернет объект Department, соответствующий вашему первичному ключу - чтобы получить имя, которое вы можете просто использовать $dept->getName()

...