首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sonata管理configureFormField

Sonata管理configureFormField
EN

Stack Overflow用户
提问于 2014-02-19 09:38:24
回答 2查看 559关注 0票数 0

我使用奏鸣曲管理,我有一个'Fonctionnare‘实体。我将该实体的'codeFonctionnaire‘类型更改为string,但是当我创建Fonctionnaire管理类并尝试添加新的fonctionaire时,我得到了以下错误消息:属性"codeFonctionnaire“或方法"setCodeFonctionnaire()”、"_set()“或"_call()”都不存在,并且在类"Examens\ExamensBundle\ entity \Fonctionnaire“中具有公共访问权限。Fonctionnaire.php:

代码语言:javascript
复制
    <?php

    namespace Examens\ExamensBundle\Entity;

    use Doctrine\ORM\Mapping as ORM;

    /**
    * Fonctionnaire
    */
   class Fonctionnaire
   {
    /**
     * @var string
     */
    private $codeFonctionnaire;

    //////

     /**
     * Get codeFonctionnaire
     *
     * @return string 
     */

    public function getCodeFonctionnaire()
    {
        return $this->codeFonctionnaire;
    }
    ////////

FonctionnaireAdmin.php:

代码语言:javascript
复制
    <?php

    namespace Examens\ExamensBundle\Admin;

    use Sonata\AdminBundle\Admin\Admin;
    use Sonata\AdminBundle\Datagrid\ListMapper;
    use Sonata\AdminBundle\Datagrid\DatagridMapper;
    use Sonata\AdminBundle\Validator\ErrorElement;
    use Sonata\AdminBundle\Form\FormMapper;
    use Sonata\AdminBundle\Show\ShowMapper;
    use Examens\ExamensBundle\Entity\Fonctionnaire;


class FonctionnaireAdmin extends Admin
{
     protected $datagridValues = array(
        '_sort_order' => 'ASC',
        '_sort_by' => 'codeFonctionnaire'
     );


     protected function configureFormFields(FormMapper $formMapper)
     {
        $formMapper
        ->add('codeFonctionnaire','text',array('label'=>'Code fonctionnaire'))       
        //////
     }

这个实体怎么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-21 19:57:11

我从fonctionnaire.orm.yml中删除了这段代码:

代码语言:javascript
复制
generator:
            strategy: IDENTITY

而且起作用了。

票数 0
EN

Stack Overflow用户

发布于 2014-02-19 15:20:49

您需要重新生成Fonctionnaire类的getter和setter。你的IDE可以帮你做到这一点。或者至少,只需添加一个

代码语言:javascript
复制
public function setCodeFonctionnaire($codeFonctionnaire) {
    $this->codeFonctionnaire = $codeFonctionnaire;
}

编辑

下面是您完整的Fonctionnaire类:

代码语言:javascript
复制
namespace TechVehi\BlogBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

class Fonctionnaire {

    /**
     * @var string
     *
     * @ORM\Column(name="codeFonctionnaire", type="string", length=255, nullable=true)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $codeFonctionnaire;

    /**
     * @param string $codeFonctionnaire
     */
    public function setCodeFonctionnaire($codeFonctionnaire) {
        $this->codeFonctionnaire = $codeFonctionnaire;
    }

    /**
     * @return string
     */
    public function getCodeFonctionnaire() {
        return $this->codeFonctionnaire;
    }
}

您可能已经忘记了其他信息,比如将对象链接到数据库的ORM注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21876417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档