за исключением двух таблиц - доктрина и симфония - PullRequest
0 голосов
/ 29 августа 2011

У меня есть два стола:

News:
id
title
body

и

NewsCopy:
id
title
body

если я добавлю новые новости, я бы хотел добавить эти же данные для таблицы NewsCopy?

class News extends BaseNews
{
    public function save(Doctrine_Connection $conn = null)
    {

      return parent::save($conn);
    }
}

как я могу сделать это просто?

Ответы [ 3 ]

1 голос
/ 29 августа 2011

Вы можете использовать метод toArray () существующего и заполненного объекта записи «Новости» и заполнить отдельный объект CopyNews. С недавно настроенным объектом вы можете сохранить с помощью.

Я предполагаю, что доктрина 1.2 - и у меня нет среды тестирования - поэтому нет кода:).

Возможно, вы также можете поиграть с методом clone () и установить новое имя таблицы ...

Все не проверено - извините.

1 голос
/ 30 августа 2011

Ну, один из возможных способов - подключить механизм сохранения Доктрины:

class News{
    //..other declarations//

    //executed after Save
    public function postSave(){
        $newsCopy = new NewsCopy(); 
        //set the parameters manually
        $newsCopy->id = $this->id;
        $newsCopy->title = $this->title;
        $newsCopy->body = $this->body;

        //OR, even better, create a "cast constructor" the same idea
        //$newsCopy = new NewsCopy($this);

        $newsCopy->save();
    }
}

См. «Прослушиватели событий» главу для более подробного объяснения

0 голосов
/ 29 августа 2011

Лучшее, что вы можете сделать, это использовать триггеры

...