내 프로젝트에서 3 사용자를 만들려고 해요 :의 유형 사용자 SonataUserBundle + FOSUserBundle + SonataAdminBundle
- Cliente : 누가 프런트 엔드에 액세스하고 필드 '이름', 'CPF'이있을 것이다, '주소'.
- Vendedor : 사이트에 상품을 등록하고 필드 '전화'가 누가 'CNPJ'
- 관리 : 모든 Clientes, Vendedores, 상품을 관리 할, 등등 ...
그래서 .. 3 묶음을 설치했습니다 : SonataUserBundle + FosUserBundle + SonataAdminBundle 각 튜토리얼을 따랐습니다. 그러나 나는이 사용자의 각 유형을 어떻게 만들 수 있는지 모른다.
엔티티 User 및 Group을 생성하는 ApplicationSonataUserBundle을 사용하고 있습니다.
namespace Sete\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Application\Sonata\UserBundle\Entity\User as BaseUser;
/**
* Cliente
*
* @ORM\Table(name="cliente")
* @ORM\Entity
*
*/
class Cliente extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
...another fields...
}
및 Vendedor :
namespace Sete\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Application\Sonata\UserBundle\Entity\User as BaseUser;
/**
* Vendedor
*
* @ORM\Table(name="vendedor")
* @ORM\Entity
*/
class Vendedor extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
...another fields...
}
AppKernel.php
... new Sonata\UserBundle\SonataUserBundle('FOSUserBundle'), new Sonata\EasyExtendsBundle\SonataEasyExtendsBundle(), new Application\Sonata\UserBundle\ApplicationSonataUserBundle()
그리고 config.yml
...
fos_user:
db_driver: orm # can be orm or odm
firewall_name: main
user_class: Application\Sonata\UserBundle\Entity\User
group:
group_class: Application\Sonata\UserBundle\Entity\Group
sonata_user:
manager_type: orm # can be orm or mongodb
...
다음
내 코드입니다
이렇게하면 내 엔티티 Cliente와 Vendor는 그룹과 관련이 없습니다. 나는 $ 그룹 관계를 추가하려고하지만 일하지 않습니다. 따라서이 엔터티를 관리하려고 할 때 오류가 발생했습니다.
An exception occurred while executing 'SELECT count(DISTINCT c0_.id) AS sclr0 FROM cliente c0_ LEFT JOIN fos_user_user_group f3_ ON f2_.id = f3_.user_id LEFT JOIN fos_user_group f1_ ON f1_.id = f3_.group_id':
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'f2_.id' in 'on clause'
사용자 유형을 만드는 데 가장 좋은 방법이 있습니까? 또는 ApplicationUserBundle : User를 확장하는 대신 Cliente 및 Vendor 엔티티 (ApplicationUserBundle : User는 확장하지 않음)를 만든 다음 User와 관계를 만듭니다 ($ cliente 및 $ vendedor 필드를 User 엔티티에두고 관계를 설정).
죄송합니다. 일주일 내내이 일을하려고합니다. 많은 자습서를 따르지만 답은 없습니다.
Thx 모두.
고맙습니다! 그것은 작동합니다. 역할에 관해서, 사용자 그룹을 설정할 때, DataBase를 업데이트하지 않습니다 (필드 역할이 null 임). 그것이 예상되는 행동입니까? – Munir
환영합니다 (그룹을 사용하고 싶지 않거나 사용할 수없는 경우이 필드는 개별 사용자 권한을 설정하기위한 것으로 사용자의 역할 필드는 비워 두어야합니다.) – TautrimasPajarskas
흠. – Munir