symfony2实体自定义函数:调用未定义函数错误

时间:2013-07-17 18:32:43

标签: symfony doctrine entity

我正在尝试添加3个函数来强化url中的非ascii字符,但我的slugify函数不识别sanitize()函数,尽管它们在同一范围内。:|

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()in .. \ Entity \ Blog.php ...”

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

谁能告诉我它有什么问题?

1 个答案:

答案 0 :(得分:1)

从您的return语句中遗漏$this。在没有sanitize()的情况下调用$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);
        ...
    }
    ...
}