2017-05-03 7 views
0

私は多くのテーブルprogvol、テーブルユーザ、テーブルフライトに関係があります 1対多のテーブルユーザ関係rammasage テーブルrammassage私は日付フィールドがあり、私が持っているテーブルフライト開始日私はこれらの2つの日付を比較する 私は、SQLテーブルのユーザーの日付を知るクエリを書く。 現在のユーザーを取得するために私のコントローラを最初に起動します$ user = $ this-> getUser(); そして、私のrepositroyに私はSymfony2リポジトリクエリ

$comp = new CompanyEvents(); 

$user = $this->get('security.token_storage')->getToken()->getUser(); 
$userprogvol = $em->getRepository('PfeBundle:programmevol')->getOnlyActive($user->getId(),$comp->getId()); 

は今、私はprogramvolテーブルのフライトID +現在のIDを持っているの$ userprogvolテーブルを持っていた私のコントローラで

<?php 

namespace PfeBundle\Repository; 
use Doctrine\ORM\EntityRepository; 


/** 
* programmevolRepository 
* 
* This class was generated by the Doctrine ORM. Add your own custom 
* repository methods below. 
*/ 
class programmevolRepository extends EntityRepository 
{ 

    public function getOnlyActive ($valeur,$vol) 
    { 
     $qb = $this->createQueryBuilder('a'); 
     $qb->where('a.users = :valeur'); // means id_user of table programmevol = $valeur($user->getId()); 
     $qb->where('a.vols = :vol'); // means id_vol of table vol = $vol (une instancedelaclassevol->getId()); 
     $qb->where('vol' , $vol); 
     $qb->setParameter('valeur', $valeur); 

     return $qb->getQuery()->getOneOrNullResult(); 
    } 


} 

をしましたユーザー

今私はしたい($ userprog-> flights(id_vol)== $ comp-> id_vol)$ var = $ comp-> getDebt();しかし、$ userprogvolは配列ですか?

どうすればいいですか?別のトリックがありますか(クエリの戻り値の型はオブジェクトです)?

+0

後に何youreのある、あなたの質問の整形を修正するために時間がかかるしてください、これは読みにくいです。 – Growiel

答えて

0

だけでなく、それはあなたの変数とプロパティの命名は、私にはば完全に不明であるので、あなただけの

foreach ($userprog->flights() as $flight) { 
    if($flight->getId() == $comp->getId()){ 
     //... 
    } 
} 

それを繰り返す可能性が配列の場合、これはあなたのアイデア

を取得し、それは聞かせてちょうどですない単純な配列が、教義のArrayCollection ので、ここであなたが利用可能なメソッドの一覧

http://www.doctrine-project.org/api/common/2.3/class-Doctrine.Common.Collections.ArrayCollection.html

を持っています

は多分$userprog->flights()->contains($element)

が本当に