我想在symfony中使用doctrine来制作这样的查询。
SELECT * FROM view_of_model1 LEFT JOIN model2 ON model1.id = model2.model1_id
使用原始sql没问题,但我需要与model1
和model2
的模型建立连接。 view_of_model1
是一个与model1表相同的透视图。
你有什么想法吗?
编辑:
我有table1
id | col_datetime1 | col_datetime2 | some_col
---------------------------------------------
我希望按datetime cols对其进行排序。如果some_col = true
我希望按col_datetime1
排序,而some_col = false
我想按col_datetime2
排序。另外,我想加入另一个表格(例如table2
)on table1.id = table2.table1_id
。可以通过与from
相关联的UNION
部分中的子查询来完成。它也可以通过创建视图来完成。但是如何将它映射到symfony模型?
EDIT2: NativeQuery会有帮助吗?
答案 0 :(得分:-1)
我认为观点只是一种并发症,在您的情况下没有附加值,因为您想要的只是让事情变得更容易。
如果要更简单地获取所需数据,而不是每次都写入连接,请在Table类中创建一个执行查询的方法,如图here所示。
即使您多次使用该方法,这也是一种很好的做法,因为数据库查询不应该写在控制器中。
示例:
class MyTable extends Doctrine_Table
{
public function getMyStuff($value)
{
return $this->createQuery('m')
->where('m.my_column = ?', $value)
->execute();
}
}