使用模型类在Symfony中检索数据

eli*_*lon 3 php doctrine symfony1 model

假设我有一个Ecosystem用我的symfony自动生成的模型schema.yml.在代码中的某个时刻,我想从表中检索记录.

我知道有一些方法可以用Doctrine/Propel类来做到这一点,但是,有没有办法直接用模型做到这一点?我一直在考虑这样的事情:

$ecosystem = new Ecosystem();
$records = $ecosystem->find(...);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这是做这种事情的首选方法吗?

我一直在使用CakePHP进行开发,直接使用Doctrine进行查询对我来说并不自然.如果我明天决定改为Propel怎么办?

谢谢!

Dar*_*yev 7

假设你的模型是Ecosystem.Doctrine为您自动生成两个模型类:

  1. Ecosystem(定义于Ecosystem.class.php) - 此类的对象是实际ecosystem实体
  2. EcoSystemTable(定义EcosystemTable.class.php) -单件类提供管理Ecosystem的实体

这就是为什么所有实体管理功能都是通过*Table类完成的.怎么弄他们?

Doctrine::getTable('Ecosystem')
Run Code Online (Sandbox Code Playgroud)

要么

Doctrine_Core::getTable('Ecosystem')
Run Code Online (Sandbox Code Playgroud)

要么

EcosystemTable::getInstance()
Run Code Online (Sandbox Code Playgroud)

要么

$obj->getTable(); // where $obj is instance of Doctrine_Record
Run Code Online (Sandbox Code Playgroud)

进一步阅读: