用attribut建立多对多的关系



我遇到了符号2和关系的问题。

我有两张桌子:电影院电影。我想使用中间对象添加它们之间的关系,中间对象包含更多关于链接的信息(例如电影院URL)。

不幸的是,当我试图保存我的表格时,我得到了以下错误:

通过关系找到了一个新实体'MyNameSapceCoreBundleEntityMovie#cinemas'未配置为级联实体的持久操作:CCD_ 2。

显式持久化新实体或在关系上配置级联持久化操作。

如果您无法找出导致问题的实体,请执行
'MyNameSapceCoreBundleEntityMovieCinema#__toString()'获取线索。

这是我的代码:
实体:

class MovieCinema {
/**
 * @ORMId
 * @ORMManyToOne(targetEntity="MyNameSpaceCoreBundleEntityCinema", inversedBy="movies")
 */
private $cinema;
 /**
 * @ORMId
 * @ORMManyToOne(targetEntity="MyNameSpaceCoreBundleEntityMovie", inversedBy="cinemas")
 */
private $movie;
   /**
 * @var string $url
 *
 * @AssertNotBlank()
 * @ORMColumn(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' => 'MyNameSpaceCoreBundleEntityCinema',
                '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' => 'MyNameSpaceCoreBundleEntityMovieCinema'
            );
}
}

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';
}
}

通过以下操作检查映射:php app/console doctrine:schema:validate

它将帮助你在三个类之间的关系中找到错误。

相关内容

  • 没有找到相关文章

最新更新