2011-12-17 4 views
0

У меня есть доктрина, настроенная на сайте, и у меня возникают проблемы с отношениями. У меня есть объект учетной записи, который имеет много профилей. Каждый профиль имеет одну учетную запись. Когда я пытаюсь создать новый профиль и сохраняюсь, тогда флеш, форма висит и ничего не делает. Если я удалю флеш, я получаю отладочные заявления print, но ничего не сохраняется.Отношения с Doctrine PHP

Свойства модели.

В счет

/** 
* The profiles belonging to this account. 
* 
* @OneToMany(targetEntity="Profile_Model_Profile", mappedBy="account") 
*/ 
protected $profiles; 

Профайл

/** 
    * The account that owns this profile 
    * 
    * @ManyToOne(targetEntity="Account_Model_Account", 
       inversedBy="profiles", 
       cascade={"detach", "persist", "merge"}, 
       fetch="EAGER") 
    * @JoinColumn(name="account_id", referencedColumnName="id") 
    */ 
protected $account; 

Создание (после установки всех свойств)

$profile->setAccount($account); 
$account->addProfile($profile); 

$em->persist($profile); 
$em->persist($account); 
$em->flush(); 

Что я здесь делаю неправильно?

+0

Из названия вопроса кажется, что вы должны были купить Doctrine PHP в День Святого Валентина и не потратили столько времени, проверяя все остальные горячие фреймворки, которые пришли. – rdlowrey

+0

Если я просто сохраняю аккаунт, у меня такая же проблема. Если после этого я смыв(), ничего не произойдет. Если я не выполняю поток исполнения, но ничего не сохраняется. – smokingoyster

+0

Мое подозрение в том, что здесь есть какой-то рекурсивный вопрос, который заставляет его зависать на flush(). – smokingoyster

ответ

0

Только что пересмотрено это. Я видел в Safari Web Inspector, что при попытке сохранить учетную запись я получаю 500 ошибок. Он просто ничего не показывал на экране. В соответствии с этим сообщением, Codeigniter and Doctrine 500 internal error, я завернул все в try catch, используя \ Exception вместо Exception и смог получить информацию о том, почему он сбой.

try{ 
     ... 
}catch (\Exception $e) {    
     echo "<pre>Error: " . $e . "</pre>"; 
} 
Смежные вопросы