2017-02-17 1 views
0

ビューでは、リンクされた値を表示したいが、リンクされた値はすべて、ユーザーアクセスに依存するため表示できません。ParamConverter:リポジトリにCurentユーザーを挿入

これを行うには、 - > where( 'user'、$ user)のleftJoinを実行するだけです。問題は、ParamConverterからリポジトリに現在のユーザを注入するにはどうすればいいですか?

+0

symfonyのロールシステムを使用してユーザーアクセスを完了しましたか? – Rooneyl

+0

http://stackoverflow.com/q/8153103/1220930 – Timurib

+0

はい、彼はビューにアクセスすることができますが、ビューでは、私は他のオブジェクトをリストし、彼がアクセスできるオブジェクトのみをリストしたいと思います。これを行うには、結果をフィルタリングするために現在のユーザーを指定するクエリを実行する必要があります。 – mpiot

答えて

1

Doctrineを使用していると仮定すると、これはうまくいくはずです。

コントローラでは、

$objRepo = $this->getDoctrine()->getManager()->getRepository('AppBundle:Objects'); 

$files = $this->objRepo->getAllForUserId($this->getUser()->getId()); 

あなたのレポファイルにあります。

public function getAllForUserId($user_id, $limit=100) 
{ 
    if (null === $user_id) { 
     throw new ORMInvalidArgumentException('User id not set'); 
    } 

    $queryBuilder = $this->createQueryBuilder('obj'); 

    $queryBuilder->select(array('obj', 'usr')) 
     ->innerJoin('obj.users', 'usr') 
     ->where('usr.id = :user_id') 
     ->setParameter(':user_id', $user_id) 
     ->orderBy('file.created', Criteria::DESC); 

    $query = $queryBuilder->getQuery(); 

    return $query->getResult(); 

} 
関連する問題