我正在使用Symfony构建一个简单的CMS。现在,我有了一个页面实体的工作CRUD。现在,我想为url添加另一个列/字段。url字段将不会显示在公共表单中。我要做的是从标题字段获取值,用连字符替换所有的空格,有我的url。但我有一个问题实现这个,url为空。以下是我到目前为止所做的。
/**
* @var string
*
* @ORM'Column(name="url", type="string", length=10)
*/
private $url;
/**
* @var string
*
* @ORM'Column(name="title", type="string", length=60)
*/
private $title;
/**
* Set url
*
* @param string $url
* @return Page
*/
public function setUrl($title)
{
$lstr = strtolower($title);
$this->url = preg_replace("/['s_]/", "-", $lstr);
return $this;
}
非常感谢任何帮助。谢谢。
/**
* Set url
*
* @prePersist
*
* @param string $url
* @return Page
*/
public function setUrl()
{
$lstr = strtolower($this->title);
$this->url = preg_replace("/['s_]/", "-", $lstr);
return $this;
}
@prePersist注释将在持久化到数据库之前执行此方法,因此您将得到您想要的!我希望这对你有帮助:)
我认为你应该改变你的url列为空。保持setter为默认值,如
public function setUrl($url)
{
$this->url = $url;
return $this;
}
但是把getter改成:
public function getUrl()
{
if(null !== $this->url){
return $this->url;
}
$lstr = strtolower($this->title);
return preg_replace("/['s_]/", "-", $lstr);
}