2013-07-17 89 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); 
     ... 
    } 
    ... 
}