例如(这是我的问题的一个不好的例子),我想通过连接firstname和lastname来存储用户fullname。 我有一个用户名为firstname,lastname,fullname
的表用户有没有办法在模式中创建一个带有触发器函数的字段,该函数存储在fullname firstname + lastname中?与created_at的工作方式相同(带时间戳)
我使用doctrine和symfony 1.4
答案 0 :(得分:4)
你绝对不需要像这样简单和不可靠地创建行为。
只需覆盖模型保存方法:
class Model extends BaseModel
{
public function save(Doctrine_Connection $conn)
{
$this->fullname = sprintf ('%s %s', $this->firstname, $this->lastname);
return parent::save($conn);
}
}
答案 1 :(得分:1)
Dziamid已经直接回答了你的要求。但是还要考虑你是否真的需要存储这样的重复数据。我使用的另一种解决方案是:
class Model extends BaseModel
{
public function getFullName() {
return ($this->name_first . ' ' . $this->name_last);
}
public function getFullNameLastFirst() {
return ($this->name_last . ', ' . $this->name_first);
}
}