2013-07-17 67 views
0

我想添加3个功能,在网址中加入非ascii字符,但我的slugify函数不能识别sanitize()函数,尽管它们在相同的作用域:|symfony2实体自定义功能:调用未定义的函数错误

class Blog 
{ 
    /** 
    * @ORM\OneToMany(targetEntity="Comment", mappedBy="blog") 
    */ 
    protected $comments; 
    ... 
    public function slugify($text) 
    { 
     return sanitize($text); 
    } 
    ... 
    public function sanitize($title) 
    { 
     $title = strip_tags($title); 
     ... 
    } 
    ... 
} 

我无法加载装置和我得到一个异常,说:“叫未定义功能.. \的sanitize()在.. \实体\ blog.php的......”

为什么有时候是这样的?我甚至尝试过这些:清除缓存,删除数据库,重新创建数据库,重新创建模式,重新创建实体,重新加载灯具......但是我得到的所有错误都是一样的:(

任何人都可以告诉我什么是错呢?

回答

1

缺少从您的return语句。当调用sanitize()$this没有$this它解决的方法范围,而不是类范围。

class Blog 
{ 
    /** 
    * @ORM\OneToMany(targetEntity="Comment", mappedBy="blog") 
    */ 
    protected $comments; 
    ... 
    public function slugify($text) 
    { 
     return $this->sanitize($text); 
    } 
    ... 
    public function sanitize($title) 
    { 
     $title = strip_tags($title); 
     ... 
    } 
    ... 
}