0

我正在尝试在 url 中添加 3 个用于处理非 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);
        ...
    }
    ...
}

我无法加载固定装置,我得到一个异常,上面写着“调用..\Entity\Blog.php 中的未定义函数..\sanitize() ...”

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

谁能告诉我有什么问题?

4

1 回答 1

1

缺少$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);
        ...
    }
    ...
}
于 2013-07-17T18:36:00.787 回答