После объединения таблиц с Zend Framework, он просто показывает мне одно поле таблиц - PullRequest
0 голосов
/ 18 марта 2011

У меня есть 2 таблицы product_category и product_sub_category

Имена полей идентичны (идентификатор, имя, объяснение, приоритет)

product_sub_category имеет внешний ключ для таблицы product_category со значением product_category_id.

С кодом ниже все, что я вижу, это product_category поля

$select = $this->select("t1.* , t2.*")
  ->setIntegrityCheck(false)
  ->from(array("t1"=>$this->_name))
  ->joinInner(array("t2"=>'product_category'), 't2.id = t1.product_category_id')
  ->order(array('t1.priority'));
$res = $this->fetchAll($select);
return $res;

В $this->_name переменная должна быть строкой product_sub_category.

Почему я не вижу все поля из обеих таблиц?

1 Ответ

1 голос
/ 18 марта 2011

MySQL вернет поля с одинаковыми именами, поэтому, когда ZF преобразует их в массив, используя имя в качестве индекса, последний перезапишет первое. Вместо этого вам нужно дать им псевдонимы:

$this->select("t1.name AS category_name, t1.explain AS category_explain, t2.name AS subcategory_name")

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...