下拉列表未显示文章类别



我正在与Symfony建立一个网站。我正在尝试获取一个页面以显示带有嵌套对象的表单。Artikel只能有一个类别。有很多artikels和许多类别。

/**
 * Artikel
 *
 * @ORMTable(name="artikel", indexes=
    {@ORMIndex(name="IDX_A4375C338C9B60D8", columns={"idartikeltype"})})
 * @ORMEntity
 */
class Artikel
{
....
/**
 * @ORMColumn(type="integer")
 *
 */
private $idartikeltype;
/**
 * @var ArtikelCategory
 * @ORMManyToOne(targetEntity="AppBundleEntityArtikelCategory"
   ,inversedBy="type")
 * @ORMJoinColumn(name="idartikeltype", 
   referencedColumnName="idartikeltype")
 */
private $category;
/**
 * @var integer
 *
 * @ORMColumn(name="idArtikel", type="integer")
 * @ORMId
 * @ORMGeneratedValue(strategy="IDENTITY")
 */
private $idartikel;
......

我的班级artikelCategory

class ArtikelCategory
{
/**
 * @var string
 * /**
 * @ORMOneToMany(targetEntity="AppBundleEntityArtikel", 
mappedBy="category",cascade={ALL})
 *
 * @ORMColumn(name="type", type="string", length=45, nullable=false)
 */
private $type;
/**
 * @var integer
 *
 * @ORMColumn(name="idartikeltype", type="integer")
 * @ORMId
 * @ORMGeneratedValue(strategy="IDENTITY")
 */
private $idartikeltype;
/**
 * @return string
 */
public function getType()
{
    return $this->type;
}
/**
 * @param string $type
 */
public function setType($type)
{
    $this->type = $type;
}
/**
 * @return int
 */
public function getIdartikeltype()
{
    return $this->idartikeltype;
}
/**
 * @param int $idartikeltype
 */
public function setIdartikeltype($idartikeltype)
{
    $this->idartikeltype = $idartikeltype;
}
public function __toString() {
    return $this->getType()
        ;

}

public function __construct(){
    $this->type = new ArrayCollection();
}
}

artikeltype

public function buildForm
( FormBuilderInterface $builder , array 
    $options 
        )
        {
           $builder
        ->add ('titel', TextType::class,array('label'=>'Titel'))
        ->add('datum',DateType::class,array('label'=>'Date'))
        ->add('category' , 
  EntityType::class,array
('class'=>AppBundleEntityArtikelCategory::class,'label'=>'Page',
            'query_builder'=>function(EntityRepository $er){ return $er-
>createQueryBuilder('t')->orderBy('t.type','ASC');}

        ))
        ->add('tekst',CKEditorType::class,array('label'=>'Text'))
        ->add('save',SubmitType::class,array('label'=>'Save item'))
        ;

}
public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array('data_class'=>'AppBundleEntityArtikel',));
} 

inputController

$item = $this-> getDoctrine()->getRepository(Artikel::class)->find($id);

    $form = $this->createForm(ArtikelType::class, $item);
    $form->handleRequest($request);
    if($form->isSubmitted() && $form -> isValid())
    {

        $em= $this->getDoctrine()->getManager();
        $em->persist($item);
        $em->flush();
       return $this->redirectToRoute('input');
    }
    return $this->render('input/input.html.twig', array('form'=>$form->createView(),));

通常,下拉列表应如数据库中显示Artikel的类别,但...

...以我的形式,下拉列表没有显示Artikel的类别,当我坚持Artikel时,新类别没有保存。

icant弄清楚这个!帮助。

您的注释不正确。删除ArtikelCategory上的@orm 列注释::类型。接下来添加__ToString()方法,该方法返回实体的文本表示。首先,在FormType中删除所有选项。只需使用-->add('category'),请按照所示的学说手册的关联映射章节中的示例如图所示仅添加 @ orm prepix。

更改后,将它们更新到数据库中的

bin/console doctrine:schema:update --force

并检查映射是否正确使用

bin/console doctrine:schema:validate

mea culpa,当我阅读关联映射时,它让我思考。现在,我知道我正在使用多一对一的单向协会。其余的是一块蛋糕....

thx。

相关内容

  • 没有找到相关文章

最新更新