0
私は3つのテーブルがあります。ウェブサイト上symfony doctrine 3つのテーブルを1つのページャ(ページ番号)にクエリしますか?
Table 1: Images
------------------------
ID | user_id | title
------------------------
1 | 0 |Image 1
2 | 1 |Image 2
Table 2: Images_Upload (image_id = Table Images ID)
------------------------
ID | image_id | file
------------------------
1 | 1 |image.png
Table 3: User
------------------------
ID | username
------------------------
1 | user1
を、ユーザーが画像をアップロードすることができます。ユーザーがログインしている場合、 と画像をアップロードすると、Table Imageのuser_idはTable UserのユーザーIDになります。 ユーザーがログインしていない場合、user_idはTable Imageで0になります。
タイトルを一覧表示し、画像を表示してユーザー名を表示します。 (USER_ID = 0ならば、私は "NOUSERNAME" と表示されます)
$q = Doctrine_Query::create()
->select('*,e.title, n.file AS file, IF(e.user_id = 0,"noUsername",k.username) AS username')
->from('Images e, ImagesUploads n, User k')
->andWhere('e.id = n.id')
->andWhere('e.user_id = k.id OR e.user_id not k.id');
$this->pager = new sfDoctrinePager(
'Images',
sfConfig::get('app_max_image')
);
$this->pager->setQuery($q);
$this->pager->setPage($request->getParameter('page', 1));
$this->pager->init();
私はユーザ名を取得することはできません。