Sonata Admin バンドルを使用していますが、データを表示するクエリの作成に問題があります。
ログインしているユーザーに応じてデータを表示したいと思います。
データベースには次のテーブルがあります。
- ジョブテーブル
- id
- title
- description
- ....
- company_id (FK)
- アプリケーション表
- id
- ...
- job_id (FK)
- 会社のテーブル
- id
- ...
会社に依存するすべてのアプリケーションをプルしたい (ログインしているユーザーも会社に関連付けられている)。したがって、job テーブルと company テーブル + companyが... と等しい内部結合が必要になります。
私のApplicationAdmin クラスには、次のものがあります。
public function createQuery($context = 'list') {
$query = parent::createQuery($context);
$user = $this->getConfigurationPool()->getContainer()->get('security.context')->getToken()->getUser();
if($user->hasRole('ROLE_COMPANY'))
{
// I'M STUCK HERE
$query->setParameter('company', $user->getCompany());
}
return $query;
}
誰かが2つの内部結合と会社とのwhere句を作成する方法を教えてもらえますか?