我想擴展默認的用戶實體屬性。在使用SonataUserBunle擴展FOSUserBundle後,在數據庫中有兩個用於存儲用戶的表格:fos_user
和fos_user_user
。我想延長fos_user
這裏是應用程序/ AppKernel.php:
擴展SonataUserBundle實體
new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'),
new Application\Sonata\UserBundle\ApplicationSonataUserBundle(),
在app/config.yml文件我設置:
fos_user:
db_driver: orm<br>
firewall_name: main<br>
user_class: Acme\DemoBundle\Entity\User<br>
group:<br>
group_class: Application\Sonata\UserBundle\Entity\Group<br>
sonata_user:
security_acl: true
class:
user: Acme\DemoBundle\Entity\User
admin:
user:
class: Acme\DemoBundle\Admin\UserAdmin
parameters:
sonata.user.admin.user.class: Blogger\BlogBundle\Admin\UserAdmin
sonata.user.admin.user.entity: Blogger\BlogBundle\Entity\User
doctrine:
orm:
auto_mapping: auto
SonataUserBundle在src/Application/Sonata/UserBundle
創建重寫SonataUserBundle,我通過在src/Acme/DemoBundle/Admin/UserAdmin
中創建另一個UserAdmin類來擴展UserAdmin,並且所有工作正常
現在我想擴展用戶實體(fos_user
表)以添加新的屬性。
這裏是我的Acme /演示/實體/ user.php的,我想要擴展默認的用戶實體
namespace Acme\DemoBundle\Entity;
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/*
* @ORM\Column(type="string", name="newAttribute")
*/
protected $newAttribute;
public function __construct()
{
parent::__construct();
// your own logic
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
}
我應該怎麼做來擴展默認fos_user
表php app/console doctrine:generate:entities Acme/DemoBundle
我已經閱讀關於這個問題的很多帖子,但沒有任何解決方案幫助我。我試圖擴展模型類而不是實體類,但也沒有任何變化
謝謝,但我已經解決了,我按照這個答案中描述的步驟:http://stackoverflow.com/a/15625000/1370752 – phpsherpa