我试图从FOSUserBundle创建CRUD面板,但我遇到了一些麻烦。我的意思是我为 FOS 创建了用户实体并为该实体制作了 crud 面板。现在,当我尝试添加新用户时,出现如下错误
属性 "expiresAt" 和方法之一 "getExpiresAt()"、"isExpiresAt()"、"hasExpiresAt()"、"_get()" 或 "_call()" 都不存在,并且在类 "Bn\UserBundle\Entity\User" 中具有公共访问权限。
这是我的第一个项目,所以请理解我什么时候会要求简单的功能,一些建议?怎么了?
<?php
namespace BnUserBundleEntity;
use FOSUserBundleModelUser as BaseUser;
use DoctrineORMMapping as ORM;
/**
* User
*
* @ORMTable(name="fos_user")
* @ORMEntity
*/
class User extends BaseUser
{
/**
* @ORMId
* @ORMColumn(type="integer")
* @ORMGeneratedValue(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;
}
}
现在正在工作,但我不知道为什么我必须再次为 getter 声明函数。
这意味着您需要将公共访问器setExpiresAt()
和getExpiresAt()
添加到您的User
实体中。
您只需要将 getExpiresAt 添加到 User.php 类中。 FOSUserBundle\User 没有此字段的 getter,但 Sensio 生成器为所有字段创建视图。
public function getExpiresAt()
{
return $this->expiresAt;
}