模型类在symfony2中的位置

时间:2012-11-06 19:40:51

标签: php symfony doctrine-orm

我是Symfony2的新手。来自Zend背景,我没有看到任何模型的文件夹。模型和控制器如何通信?

如果我不想使用Doctrine怎么办?即使我使用Doctrine,模型将在哪里存在以及它们如何与控制器通信?

Symfony网站有一些关于symfony2的好文档,但它与我在symfony1.X中注意到的文档不一样。官方文档在使用不同的学说方法时没有添加什么名称空间。 感谢社区提前获取提示。

2 个答案:

答案 0 :(得分:17)

您可以手动创建模型。

<强>模型

  • 在您的包中创建新目录(型号)
  • 创建MyModel

  • 设置命名空间(company \ mybundle \ models)

  • 设置Doctrine并使用实体(使用
  • 在您的模型中添加 DQL

<强>控制器

  • use company\mybundle\models\mymodel;

    public function getRecentUserAction ($max = 10)  
    {
         $user = new MyModel();
         $list = $user->getRecentUser($max) // DQL
        return $this->render('CompanyBundle:controller:index.html.twig',array('list'=>$list));
    }
    

答案 1 :(得分:6)

  

Symfony2实际上是为Controller部件提供工具,View部件,而不是Model部件。您可以手动创建模型或使用任何其他工具,如ORM。

     

- Fabien Potencier(source

但是如何在没有模型的情况下与数据库进行通信?

您可以选择自己的方式。您可以创建自定义模型并使用它们,也可以使用DataMappers或其他东西。 Symfony2标准版包括Doctrine和Propel ORM。默认情况下使用Doctrine。

详细了解这些ORM以及如何在Symfony2中使用它们:doctrinepropel