使用symfony在创建或更新时自动更新的数据库字段

时间:2011-05-18 15:26:09

标签: symfony1 doctrine field

例如(这是我的问题的一个不好的例子),我想通过连接firstname和lastname来存储用户fullname。 我有一个用户名为firstname,lastname,fullname

的表用户

有没有办法在模式中创建一个带有触发器函数的字段,该函数存储在fullname firstname + lastname中?与created_at的工作方式相同(带时间戳)

我使用doctrine和symfony 1.4

2 个答案:

答案 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);
  }
}