我正在尝试添加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 ...”
为什么会这样?我甚至尝试过这些:清除缓存,删除数据库,重新创建数据库,重新创建模式,重新创建实体,重新加载灯具...... 但我所得到的只是同样的错误:(
谁能告诉我它有什么问题?
答案 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);
...
}
...
}