我使用sonata admin,我有一个'Fonctionnare'实体。我将此实体的'codeFonctionnaire'类型更改为字符串,但是当我创建Fonctionnaire管理类并尝试添加新的fonctionaire时,我收到此错误消息: 属性“codeFonctionnaire”和方法“setCodeFonctionnaire()”,“_ set()”或“ _call()”之一都不存在,并且在“Examens \ ExamensBundle \ Entity”类中具有公共访问权限Fonctionnaire”。 Fonctionnaire.php:
<?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:
<?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'))
//////
}
该实体出了什么问题?
答案 0 :(得分:0)
您需要重新生成Fonctionnaire类的getter和setter。您的IDE可以为您完成。 或者至少,只需添加一个
public function setCodeFonctionnaire($codeFonctionnaire) {
$this->codeFonctionnaire = $codeFonctionnaire;
}
修改
以下是您完整的Fonctionnaire课程:
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注释添加到数据库中。
答案 1 :(得分:0)
我从fonctionnaire.orm.yml删除了这段代码:
generator:
strategy: IDENTITY
它有效。