Doctrine symfony - 查询视图和左连接

时间:2012-05-24 15:35:21

标签: join symfony1 doctrine

我想在symfony中使用doctrine来制作这样的查询。

SELECT * FROM view_of_model1 LEFT JOIN model2 ON model1.id = model2.model1_id

使用原始sql没问题,但我需要与model1model2的模型建立连接。 view_of_model1是一个与model1表相同的透视图。

你有什么想法吗?

编辑: 我有table1

id | col_datetime1 | col_datetime2 | some_col
---------------------------------------------

我希望按datetime cols对其进行排序。如果some_col = true我希望按col_datetime1排序,而some_col = false我想按col_datetime2排序。另外,我想加入另一个表格(例如table2on table1.id = table2.table1_id。可以通过与from相关联的UNION部分中的子查询来完成。它也可以通过创建视图来完成。但是如何将它映射到symfony模型?

EDIT2: NativeQuery会有帮助吗?

1 个答案:

答案 0 :(得分:-1)

我认为观点只是一种并发症,在您的情况下没有附加值,因为您想要的只是让事情变得更容易。

如果要更简单地获取所需数据,而不是每次都写入连接,请在Table类中创建一个执行查询的方法,如图here所示。
即使您多次使用该方法,这也是一种很好的做法,因为数据库查询不应该写在控制器中。

示例:

class MyTable extends Doctrine_Table
{
  public function getMyStuff($value)
  {
    return $this->createQuery('m')
      ->where('m.my_column = ?', $value)
      ->execute();
  }
}