2013-10-11 2 views
1

Я triying обновить родительский объект, когда я обновить дочернюю сущность, поэтому, когда я называю метод ребенка, я взываю к родительскому методу, как это:Symfony 2 доктрины сохраняется родительская сущность от ребенка

class Parent(){ 
    public function setUpdate($bool){ 
     $this->update = $bool; 
    } 
} 

class Child(){ 
    public function setUpdate($bool){ 
     $this->update = $bool; 
     $this->getParent()->setUpdate($bool); /*CALL PARENT METHOD*/ 
    } 
} 

Вызывается родительский метод, но когда я делаю упор на дочерний объект, родительский упор не срабатывает.

Любая идея? Большое спасибо!!!!

+0

Что именно вы имеете в виду с 'родитель не проходят не fire'. Есть ли сообщение об ошибке? Можете ли вы опубликовать код своих сущностей. Слишком много догадываться. –

ответ

0

Возможно, вам не хватает атрибута каскада при сопоставлении объектов. Например:

class User 
{ 
//... 
    /** 
    * @OneToOne(targetEntity="User", mappedBy="user_id", cascade={"persist"}) 
    */ 
    private $parent; 
//... 
} 

Посмотрите на http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/working-with-associations.html

+0

У моего родителя много детей, поэтому mappedBy и каскад находятся в родительском объекте (OneToMany), поэтому таким образом я могу обновлять дочерние элементы от родителя, но не наоборот, это то, что я хочу :( – Angel

+1

In в этом случае вам не нужно сохранять дочерний элемент, просто родительский. Вы можете сделать что-то вроде этого: '$ parent-> getChildren() -> add (new Child());' и затем сохранить $ parent – Jacobson

+0

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

Смежные вопросы