2011-02-01 30 views
1

主义文档解释说,为了增加学说记录过滤器,你必须unshiftFilter(),以表定义设置()方法:如何在symfony的schema.yml中定义教义记录过滤器?

 
public function setUp(){ 
    parent::setUp(); 
    $this->unshiftFilter(new MyDoctrineRecordFilter()); 
} 

在symfony中的情况下应该去基类(即/ lib目录/ model/doctrine/base/BaseArticle.class.php),但是当symfony在每次重建模式时都会覆盖基类 - 我应该如何定义该过滤器,以便在运行doctrine:build命令后出现在那里?我无法在doc或internet中找到关于schema.yml中的定义的任何参考。

谢谢。

回答

0

我们使用的原则1.2.4。似乎没有yaml-schema相当于

0

正如您所了解的,绝不会对自动生成的基类类进行任何更改。你的改变只会被抹去。

相反,你会发现扩展你的基类的子类。 Symfony/Doctrine在创建后不会触及那些(除symfony doctrine:clean-model-files之外)。在你的情况,查找:

/lib/model/doctrine/Article.class.php 

表格过滤器是不同的路径上类似定义:

/lib/filter/doctrine/base/BaseArticleFormFilter.class.php 
/lib/filter/doctrine/ArticleFormFilter.class.php 
+0

感谢您的快速回答。我对此很清楚。试图将设置功能添加到Article.class.php: public function setUp(){ \t \t parent :: setUp(); $ this-> unshiftFilter(new MyDoctrineRecordFilter());致命错误:调用成员函数evictAll()在C:\ projects \ myproject \ lib \ vendor \ symfony \ lib \ plugins \ sfDoctrinePlugin \ lib \ vendor \ doctrine \ Doctrine \ Connection.php on line 1239. 请注意,MyDoctrineRecordFilter不是formfilter,而是doctrine记录过滤器(扩展Doctrine_Record_Filter)。 – dsomnus 2011-02-01 18:15:41