2012-08-06 43 views
1

我遇到了symfony 2和關係問題。與attribut的多對多關係

我有2個表格:電影電影。 我想使用包含更多關於鏈接的信息的中間對象(例如電影網址)在它們之間添加關係。

不幸的是,當我嘗試保存我的形式我得到這個以下錯誤:

一個新的實體通過中沒有配置級聯關係 'MyNameSapce\CoreBundle\Entity\Movie#cinemas' 發現持續經營的實體: MyNameSapce\CoreBundle\Entity\[email protected]

顯式地堅持新實體或在關係上配置級聯持久操作。

如果您無法找出哪個實體導致問題實施
'MyNameSapce\CoreBundle\Entity\MovieCinema#__toString()'以獲得線索。

這裏是我的代碼:
實體:

class MovieCinema { 

/** 
* @ORM\Id 
* @ORM\ManyToOne(targetEntity="MyNameSpace\CoreBundle\Entity\Cinema", inversedBy="movies") 
*/ 
private $cinema; 

/** 
* @ORM\Id 
* @ORM\ManyToOne(targetEntity="MyNameSpace\CoreBundle\Entity\Movie", inversedBy="cinemas") 
*/ 
private $movie; 

    /** 
* @var string $url 
* 
* @Assert\NotBlank() 
* @ORM\Column(name="url", type="integer") 
*/ 
private $url; 

形式:

class MovieCinemaType extends AbstractType { 

public function buildForm(FormBuilder $builder, array $options) { 
    $builder 
      ->add('cinema', 'entity', array(
       'label' => 'movie.field.cinema', 
       'class' => 'MyNameSpaceCoreBundle\Entity\Cinema', 
       'required' => false 
      )) 
      ->add('url', 'text', array(
       'label' => 'movie.field.url' 
      )) 
    ; 
} 

public function getName() { 
    return 'corebundle_moviecinematype'; 
} 


public function getDefaultOptions(array $options) { 
    return array(
      'data_class' => 'MyNameSpace\CoreBundle\Entity\MovieCinema' 
      ); 
} 

} 

class MovieType extends AbstractType { 

public function buildForm(FormBuilder $builder, array $options) { 
    $builder 
      ->add('name', 'text', array(
       'label' => 'movie.field.name' 
      )) 
      ->add('cinemas', 'collection', array(
       'type' => new MovieCinemaType, 
       'prototype' => true, 
       'allow_add' => true) 
      ) 
    ; 
} 

public function getName() { 
    return 'corebundle_movietype'; 
} 

} 
+0

你可以粘貼'MyNameSpace \ CoreBundle \ Entity \ Cinema'的代碼嗎? – Florent 2012-08-06 12:03:01

回答

1

通過這樣做來檢查你的映射:php app/console doctrine:schema:validate

這將幫助你找到你的3個類之間的關係錯誤。