2013-11-10 2 views
0

Я пытаюсь создать панель CRUD из FOSUserBundle, но у меня есть некоторые проблемы. Я имею в виду, что я создал объект User для FOS и сделал crud панель для этого объекта. Теперь, когда я пытаюсь добавить нового пользователя у меня есть ошибка, как показано нижеSymfony 2.3.6 создает панель CRUD из FOSuserbundle

Ни свойство «expiresAt», ни один из методов «getExpiresAt()», «isExpiresAt()», «hasExpiresAt()», «_ get() "или" _call() "существуют и имеют открытый доступ в классе" Bn \ UserBundle \ Entity \ User ".

Это мой первый проект, поэтому, пожалуйста, поймите, когда я попрошу простую функцию, предложение? Что не так ?

+0

Я просто смотрю на это снова ... Я предполагаю, что ваша организация 'Bn \ UserBundle \ Entity \ User' наследует от' ФОС \ UserBundle \ Model \ User'. Родительский класс должен иметь сеттеры/геттеры для 'expiresAt'. Так что это кажется немного странным. Можете ли вы разместить свой код сущности пользователя? –

ответ

0

Я считаю, это значит, что вам нужно добавить публичных пользователей setExpiresAt() и getExpiresAt() к вашему User субъектам.

2
<?php 

namespace Bn\UserBundle\Entity; 

use FOS\UserBundle\Model\User as BaseUser; 
use Doctrine\ORM\Mapping as ORM; 

/** 
* User 
* 
* @ORM\Table(name="fos_user") 
* @ORM\Entity 
*/ 
class User extends BaseUser 
{ 
    /** 
    * @ORM\Id 
    * @ORM\Column(type="integer") 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * Get expiresAt 
    * 
    * @return \DateTime 
    */ 
    public function getExpiresAt() 
    { 
     return $this->expiresAt; 
    } 

    /** 
    * Get credentials_expire_at 
    * 
    * @return \DateTime 
    */ 
    public function getCredentialsExpireAt() 
    { 
     return $this->credentialsExpireAt; 
    } 


    public function __construct() 
    { 
     parent::__construct(); 
     // your own logic 
    } 

    /** 
    * Get id 
    * 
    * @return integer 
    */ 
    public function getId() 
    { 
     return $this->id; 
    } 
} 

Теперь работает, но я не знаю, почему я должен снова объявить функцию для геттера.

+0

Я пробовал вышеуказанный код, но все же это не работает, это то, что вы пропустили, чтобы указать? – Sarang

0

Вам нужно только добавить getExpiresAt в свой класс User.php. FOSUserBundle \ User не имеет getter для этого поля, но генератор Sensio создает представления для всех полей.

public function getExpiresAt() 
{ 
    return $this->expiresAt; 
} 
Смежные вопросы