Symfony1 Symfony 1.4,条令(条令::Hydrou阵列非多重)

Symfony1 Symfony 1.4,条令(条令::Hydrou阵列非多重),symfony1,doctrine,Symfony1,Doctrine,我只是教西蒙尼和教义。 我不知道用1行数组来代替多行数组。 我用这个: $q = $this->createQuery('a') ->innerJoin('a.Translation t') ->andWhere('t.lang = ?', $language) ->andWhere('t.name LIKE ?', 'somename%'); return $q->execute(array(), Doctrine::

我只是教西蒙尼和教义。 我不知道用1行数组来代替多行数组。 我用这个:

$q = $this->createQuery('a')
      ->innerJoin('a.Translation t')
      ->andWhere('t.lang = ?', $language)
      ->andWhere('t.name LIKE ?', 'somename%');

    return $q->execute(array(), Doctrine::HYDRATE_RECORD);
然后我得到了如下结果:

Array
(
    [0] => Array
        (
            [id] => 1
            [created_at] => 2012-03-19 17:40:52
            [updated_at] => 2012-03-21 17:44:04
            [created_by] => 1
            [updated_by] => 1
            [Translation] => Array
                (
                    [en] => Array
                        (
                            [id] => 1
                            [name] => somename
                            [lang] => en
                            [slug] => somename
                        )

                )

        )

)
但我需要

Array
(
    [0] => Array
        (
            [id] => 1
            [created_at] => 2012-03-19 17:40:52
            [updated_at] => 2012-03-21 17:44:04
            [created_by] => 1
            [updated_by] => 1
            [id] => 1
            [name] => somename
            [lang] => en
            [slug] => somename
        )

)

有人知道我是怎么做到的吗?

您是否尝试过使用所需的列显式添加select

$q = $this->createQuery('a')
      ->select('a.id, a.created_at, a.updated_at, a.created_by, a.updated_by, t.id, t.name, t.lang, t.slug')
      ->innerJoin('a.Translation t')
      ->andWhere('t.lang = ?', $language)
      ->andWhere('t.name LIKE ?', 'somename%');

return $q->execute(array(), Doctrine::HYDRATE_ARRAY);

是否将
关键字一起使用

$q = $this->createQuery('a')
        ->innerJoin('a.Translation t WITH t.lang = ?', $language)
        ->where('t.name LIKE ?', 'somename%');
return $q->execute(NULL, Doctrine::HYDRATE_ARRAY);
我只用

$q = $this->createQuery('a')
  ->select('a.id as id, t.name as name')
  ->leftJoin('a.Translation t')
  ->where('t.name LIKE ?', $name.'%')
  ->andWhere('t.lang = ?', $language);
添加fetchOne()而不是execute()?