2016-11-22 46 views
1
use AppBundle\Entity\classObject; 

/** 
* @Route("route/sub/action", name="methodName") 
* @Method({"POST"}) 
*/ 
public function doMethod(Request $request) 
{ 
    $content; 
    $myClassObject = $this->returnObject(); 

    if ($myClassObject) { 
     $myClassObject-> **NOTHING EXISTS...** 
    } else { $content = '[{ "result":"0" }]'; } 

    $response = new Response($content); 
    return $response; 
} 
/* 
* @return classObject 
*/ 
private function returnObject() { 
    $em = $this->getDoctrine()->getEntityManager(); 
    $repo = $em->getRepository('AppBundle:classObject'); 
    return $repo->createQueryBuilder('o')->where('o.active LIKE :active')->setParameter('active', true)->getQuery()->getOneOrNullResult(); 
} 

上記の例は機能していません。私のデータベースには有効なオブジェクトがあります。値$myClassObjectは、activeがtrueのデータベースの結果と等しくなります。これはエンティティクラスです。ただし、データベースから取得した後はオブジェクト/クラスとして扱われません。 get/setなどの関数にはアクセスできません。symfony 2(Doctrine)は結果をクラスオブジェクトとして扱いません

+1

がLIKE演算子は文字列パターンではなく、ブール値を一致させるために使用されています。 – Gerry

答えて

1

activeパラメータに1の代わりtrueを設定してみてくださいし、次のように代わりにLIKEequalを使用します。

return $repo->createQueryBuilder('o') 
     ->where('o.active = :active') 
     ->setParameter('active', 1) 
     ->getQuery()->getOneOrNullResult(); 

・ホープ、このヘルプ

+0

提案していただきありがとうございます、残念ながら、何の違いもありませんでした。このオブジェクトは、LIKEまたは=のいずれであっても、 '真'または '1'に関係なく、データベースクエリによって返されます。問題は次の通りです:$ myClassObject-> ** NOTHING EXISTS ... **(オブジェクト/クラスとして扱われず、関数/変数はありません) –

+0

PHPStormを追加するにはSymfonyとの統合を行うIDEが必要です。 –

+0

@JordanDyckesあなたは何を言っているのですか?戻り値の型は何ですか?あなたの質問は、IDEのオートコンプリートについてのみですか? – Gerry

関連する問題