我正在使用Symfony构建一个简单的CMS。现在,我有一个有效的页面实体CRUD。现在,我想为url添加另一个列/字段。 url字段不会以公开形式显示。我想要做的是从标题字段获取值,用连字符替换所有空格,并有我的网址。但我实现这个问题,url来自null。这是我到目前为止所做的。
/**
* @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;
}
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
/**
* Set url
*
* @prePersist
*
* @param string $url
* @return Page
*/
public function setUrl()
{
$lstr = strtolower($this->title);
$this->url = preg_replace("/[\s_]/", "-", $lstr);
return $this;
}
@prePersist注释将在持久化到数据库之前执行此方法,因此您将得到您想要的!我希望这会有所帮助:)
答案 1 :(得分:0)
我认为您应该将您的网址列更改为可空。保持你的setter像
一样默认public function setUrl($url)
{
$this->url = $url;
return $this;
}
但是将你的吸气剂变成:
public function getUrl()
{
if(null !== $this->url){
return $this->url;
}
$lstr = strtolower($this->title);
return preg_replace("/[\s_]/", "-", $lstr);
}