У меня есть все модели. Мне нужно определить отношения в доктрине и построить запрос, используя доктрину.
Запрос без доктрины, который работает нормально.
SELECT * FROM asset_site_link l
join assets a on l.assetID = a.id
join assetTypes t on t.id = a.assetTypeID
join assetCategories c on c.id = a.categoryID
where t.name="image" AND c.name = "static_banner"
and l.siteID = "2"
Моя первая попытка что-то вроде этого, которая не сработала.
$q = Doctrine_Query::create()
->select('r.*')
->from('assetManagement_Model_asset r')
->leftJoin('r.assetTypeID t')
->leftJoin('r.categoryID c')
->leftJoin('r.assetSiteLink l')
->where('r.isDeleted = 0')
->andWhere('t.name = ?', "image")
->andWhere('c.name = ?', "static_banner")
->andWhere ('l.siteID = ?', "2");
пока запрос ниже работает нормально (без объединения assetSiteLink)
$q = Doctrine_Query::create()
->select('r.*')
->from('assetManagement_Model_asset r')
->leftJoin('r.assetTypeID t')
->leftJoin('r.categoryID c')
->where('r.isDeleted = 0')
->andWhere('t.name = ?', "image")
->andWhere('c.name = ?', "static_banner");
Просто чтобы сказать вам, что модель актива имеет отношение один ко многим с AssetSiteLink
Есть идеи?