我想擴展奏鳴曲用戶包的用戶實體,但它總是失敗(至少當我想與奏鳴曲管理束一起使用時)。如果我使用Application/Sonata/UserBundle/Entity/User Entity,它可以工作,我可以在儀表板中對其進行編輯。擴展用戶實體
我的實體是這樣的:
<?php
namespace MyNamespace\MyBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\EntityManager;
use Sonata\UserBundle\Entity\BaseUser as BaseUser;
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
}
在我config.yml我定義以下選項:
fos_user:
db_driver: orm
firewall_name: main
user_class: MyNamespace\MyBundle\Entity\User
group:
group_class: Application\Sonata\UserBundle\Entity\Group
group_manager: sonata.user.orm.group_manager
service:
user_manager: sonata.user.orm.user_manager
和:
sonata_user:
security_acl: true
manager_type: orm
class:
user: MyNamespace\MyBundle\Entity\User
登錄工作正常,但後來我收到錯誤信息
「在模板呈現過程中出現異常(」無法爲指定路由生成URL「admin_sonata_user_user_create」,因爲此路由不存在。「)在SonataAdminBundle中:Block:block_admin_list.html.twig,第39行「。
我的routing.yml是這樣的:
admin:
resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
prefix:/
_sonata_admin:
host: www.mydomain.com
resource: .
type: sonata_admin
prefix:/
schemes: [https]
即使我按照這個教程(Extending Sonata User Bundle and adding new fields)一步一步,我得到了同樣的錯誤。
可以執行: 'php app/console router:debug | grep admin_sonata_user_user_create' – Pawel 2015-01-21 13:06:34
是的,沒有結果,因爲路由完全丟失。如果我切換回默認的sonata-user-bundle用戶實體,路由將再次運行並出現在路由器:debug輸出中。 – dominikweber 2015-01-21 13:12:23
爲什麼不擴展SonataUser而不是FOSUserBundle實體?我只是猜測,那奏鳴曲擴展了FOS用戶?如果您正在使用此捆綁包,YOu不能省略SonataUser實體。 – Pawel 2015-01-21 14:40:55