Поля базы данных, которые автоматически обновляются при создании или обновлении с помощью symfony - PullRequest
0 голосов
/ 18 мая 2011

Например (это плохой пример для моего вопроса), я хочу сохранить полное имя пользователя путем объединения имени и фамилии. У меня есть таблица пользователя с именем, фамилией, полным именем

Есть ли способ создать поле в схеме с помощью функции триггера, которая хранит полное имя имя + фамилия? Так же, как работает create_at (с отметкой времени)

Я использую учение и Symfony 1.4

Ответы [ 2 ]

4 голосов
/ 18 мая 2011

Вам определенно не нужно создавать поведение для чего-то столь же простого и неиспользуемого, как это.

Просто переопределите метод сохранения вашей модели:

class Model extends BaseModel
{
  public function save(Doctrine_Connection $conn)
  {
    $this->fullname = sprintf ('%s %s', $this->firstname, $this->lastname);
    return parent::save($conn);
  }
}
1 голос
/ 19 мая 2011

Дзиамид уже прямо ответил на ваш вопрос.Но подумайте также, действительно ли вам нужно хранить такие дубликаты данных.Другое решение, которое я использую, это:

class Model extends BaseModel
{
  public function getFullName() {
    return ($this->name_first . ' ' . $this->name_last);
  }

  public function getFullNameLastFirst() {
    return ($this->name_last . ', ' . $this->name_first);
  }
}
...