【问题标题】:Symfony Sonata Admin Bundle - expected numericSymfony Sonata Admin Bundle - 预期数字
【发布时间】:2023-04-01 04:21:01
【问题描述】:

嘿,我的降神会实体有以下字段:

- idseance
- day
- hour
- idmovie (references to Movie entity => id)
- idromm (references to Room entity => id)

当我想列出所有的降神会时,一切都可以,我在 col 中看到电影标题,但如果我尝试编辑降神会,我会遇到以下错误: 无法转换属性路径“idmovie”的值:应为数字。

在 idroom 的情况下也会出现同样的错误。

下面是我来自 SeanceAdmin 的 configureFormField

   $formMapper->add('day', 'datetime', ['label' => 'Data seansu', 'format' => 'y M d']);
    $formMapper->add('hour', 'time', ['label' => 'Godzina rozpoczęcia ']);
    $formMapper->add('discountticket', 'number', ['label' => 'Cena biletu ulgowego']);
    $formMapper->add('normalticket', 'number', ['label' => 'Cena biletu normalnego']);
    $formMapper->add('idmovie', 'integer', ['label' => 'Film']);
    $formMapper->add('idroom', 'integer', ['label' => 'Sala']);

如果我删除 idmovie 和 idroom,编辑页面加载正确,但我当然不能编辑电影或房间值。

有人知道为什么它不能正常工作吗?

【问题讨论】:

    标签: php symfony sonata-admin


    【解决方案1】:

    如果没有完成,需要为idmovie/idromm字段写注解。

    首先,在你的实体命名空间下添加:use Doctrine\ORM\Mapping as ORM;

    然后你必须像这样注释你的字段:

     * @ORM\ManyToOne(targetEntity="YourBundle\Entity\Movie", cascade={"persist"})
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="id_movie", referencedColumnName="id")
     * })
     /
     private $idMovie;
    

    最后,在 SeanceAdmin.php 中,您需要将字段的 integer 类型替换为 entitysonata_type_model

    您可以在此处查看有关表单字段类型的更多信息 -> https://sonata-project.org/bundles/admin/master/doc/reference/form_types.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 2017-12-11
      • 2019-01-12
      相关资源
      最近更新 更多