2016-08-07 11 views
4

誰かがこの奇妙な問題をsymfony3(直前のバージョン)に直面していますか?symfony findBy/findOneBy

私は、次の簡単なコード

$repository = $this->getDoctrine() 
        ->getManager() 
        ->getRepository('GeneralRegistrationBundle:Service'); 

$service = $repository->findOneBy(array('name' => 'Registration'),array('name' => 'ASC')); 

    $comment = $service->getComment(); 
    $name = $service->getName(); 

    return new Response('le service is '. $name . ', content is ' . $comment); 

このコードの作品を​​持っています。 私はfindOneByはfindByでキャッシュを削除し、変更します。

その後、
$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0); 

I持って、次のエラー:

Error: Call to a member function getComment() on array

誰でも持っているアイデアや手がかりですか?予め

おかげ

+3

あなたは何を期待していましたか? findOneは1つだけのオブジェクトを返します。 findは常に0個以上のオブジェクトの配列を返します。 – Cerad

+0

Fuhhhh ....今は休暇に行く必要があります....ありがとうございます。Cerad – user2045003

+0

これは解決ですか?もしそうなら、答えをマークするか、投稿して受け入れてください。 –

答えて

9

findBy()指定された条件にオブジェクトの配列を返します。 、あなたはループがすべきでない場合

$service = $repository->findBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0]; 

:あなたの条件を満足するだけで1行があるfound.if noneである場合は、空の配列が、あなたはこのようなあなたの$サービスの最後に[0]を追加する必要があります返す foreachや何か類似している配列を探します。