2017-03-08 1 views
-1

データベースのdoctrineクエリから配列を反復しようとしています。 idフィールドの値を取得したら、メソッドの戻り値の型として値を設定します。エンドポイントURIを取得するとステータス200が返されます - 応答は空です配列を反復してデータベースからidフィールドを返すsymfony2コントローラメソッド

これは私の試みです。

/** 
* @Route("/get/{email}") 
*/ 
public function emailAction($email) 
{ 
    $var = ""; 
    $singleresult = $this->getDoctrine()->getRepository('Api3Bundle:Influ')->findOneBy(array('email' => $email)); 
    if ($singleresult === null) { 
    return new View("user not found", Response::HTTP_NOT_FOUND); 
    } 
//area of problem 
    foreach($singleresult as $users) 
    { 
     $var = $users.id; 
    } 
return $var; 
//end of area of problem 
} 

私はidを返すために電子メールを使用しようとしています。上記の試みは、応答が空であることを郵便配達員によって示します。

+0

'$のusers.id'が有効なPHPではありません。また、 arを返すegular値ですが、応答を返す必要があります。 – kero

+0

私の間違いはどこですか?私はphp/symfonyの新人です – Float

+1

'$ users-> id' [PHP Docs](http://www.php.net/manual/en/language.oop5.basic.php) –

答えて

0

$singleresultに結果が1つしかない場合は、なぜforeach()を使用していますか?

$singleresultが複数の結果を持っている場合は、それらすべてをループしようとしているし、以前のすべての$var年代が上書きされますので(最後の1を返す。

あなたはせずに直接$singleresult->idそれにアクセスすることはできませんループ?

idが空の場合は、おそらくあなたは何idがない理由は$singleresultの内部ですべてを返すことによって、いくつかのデバッグをやって開始することができます。

+0

私はどのように単一の結果の中にすべてを返すことができますあなたの答えを少し変更することができます – Float

+0

'foreach'や' $ var'の宣言は必要ないと示唆しています。 '$ singleresult- > id'。これがうまくいかない場合は、 'var_export($ singleresult)'を実行して質問にデータを追加してください。そのデータがあなたが見たいと思っているものでない場合は、OOPが何を行っているかを理解することがあなた次第です。 – mickmackusa

+0

は、jsonリクエストでvar_export($ singleresult)が動作します。 jsonの要求を返すときに、小枝のビューがコントローラーに接続されていません。 – Float

関連する問題