如何为Symfony中的另一个setter从其他变量获取值


How to get the value from other variable for another setter in Symfony

我正在使用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);
}