2012-03-23 10 views
1

に未定義のインデックスこれは私のCategoriasモデルです:http://pastebin.com/Wk5iw3Hf と これが私のProyectosモデルです:http://pastebin.com/LDTpZ3Cyお知らせ:SqlWalker.php

一つのカテゴリには多くのproyectsを持っています。私のリポジトリに

、 - 私はこのように、このモデルに参加しようとしている:

public function findMistareas() { 
     $em = $this->getEntityManager(); 
     $consulta = $em->createQuery('SELECT c, p FROM GestionBundle:Categorias c JOIN c.proyectos p '); 
     return $consulta->getResult(); 
} 

けど - 私はこのエラーを取得:

Notice: Undefined index: Categorias in /Users/gitek/www/ges/vendor/doctrine/lib/Doctrine/ORM/Query/SqlWalker.php line 747 

任意のヘルプや手がかり?多分問題はモデルにあるのでしょうか?しかし私はどこを見ることができません。

+0

の=「proyectos」mappedByを必要とします' –

+0

いいえ、Gitekの部分を追加する必要はありません...とにかくおかげです。 – ikerib

答えて

2
/** 
* @ORM\ManyToOne(targetEntity="Categorias",inversedBy="proyectos") 
* @ORM\JoinColumn(name="categoria_id", referencedColumnName="id") 
*/ 
private $categoria; 

/** 
* @ORM\OneToMany(targetEntity="Hitos", mappedBy="Proyectos") 
* @ORM\OrderBy({"orden" = "ASC"}) 
*/ 
private $hitos; 

P 'を選択、GestionBundleからのH:Proyectos pを登録しようp.hitosさh'

あなたの質問はカテゴリについてですが、あなたのクエリがhitosを使用していますか? `Pを選択、GitekGestionBundleからのH:Proyectos mappedByとinversedByは大文字と小文字が区別されているので、おそらく私はあなたが「Gitek」エンティティの名前空間の一部が欠けていると思うの代わりにmappedBy =「Proyectos」

+0

Yap!ごめんなさい!私は今すぐコードを更新しました。後で私はヒットと一緒に試してみる。まず最初にCategoriasとProyectos ...私のモデルをチェックしました。名前は大文字で、テーブル名も大文字ではありません。 – ikerib

+0

mappedByは、エンティティクラスではなくメンバー変数名を参照しています。少なくともあなたが投稿したものは小文字です。別の問題:$ category_idのようなメンバー名を関係の一部として持つことは少し驚くべきことです。おそらくidだけでなくオブジェクトを保持しているのでおそらく$ categoryであるべきです。 – Cerad

+0

あなたは正しいです、問題はmappedByにありました。ありがとう!! – ikerib

関連する問題