2013-08-01 5 views
0

에게 역할을 추가 나는 이것이 내가 읽어 봤는데 워드 프로세서보다 더 간단 바라고 있어요.액세스 제어 목록 - 사용자

내가 그들을 사용자 로그인 등록 할 수있는 표준 FOSUserbundle 사용자 엔티티와 ManyToOne의 관계 기관의 번호를 가지고, 또한 애완 동물의 수를 가질 수 등

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

    public function __construct() 
    { 
     parent::__construct(); 
    } 

내 사용자 각각의 로그 아웃. 나는. 나는 "고양이 전용"부분에 사용자가이를 허용, 그들이 할 경우 어떤 고양이가 아닌지, 그리고 경우에 정의하는 액세스 제어 목록의 사용자 역할을 추가하는 방법을

class Cat 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="name", type="string", length=255) 
    */ 
    private $name; 

    /** 
    * @ORM\ManyToOne(targetEntity="User") 
    * @ORM\JoinColumn(name="user_id", referencedColumnName="id") 
    **/ 
    private $user_id; 

: 여기 (간체) 고양이의 실체입니다 내 웹 사이트의

주 (약간 관련) : 그것은, 내가 그것의, 특히, 조인의 다른 종류의 물건을 설계하는 좋은 튜토리얼/설명 날 지점 수있는 사람을 upvote에 있습니다 교리를 사용하여 데이터베이스 설계에 올 때 나는 약간 지체 느낌 Symfony/Doctrine 환경에서.

답변

0

글쎄, 당신은 아직 아무것도 못 했어 때문이다. 나는 거기에 뭔가를 던지 겠지만 내 경험은 지금까지 온건합니다. 사용자가 연관된 고양이 개체가있는 경우, 고양이 소유자 페이지의 컨트롤러에서

, 당신은 조회 할 수 있습니다.

당신은 사용자와 고양이 클래스 및 협회에 대한 변수에 OneToMany/ManyToOne 주석을 추가해야합니다. 당신이 Symfony2로 작업하고 책을 읽을 시간을 촬영하지 않은 경우 바로 symfony2 책 (교리 섹션에서 검토 할 수있는이, 즉 지식의 최소한의 수준이 전체 스택 작업을하고 난 당신을 제안 그것을 전부 읽으십시오). (당신이 정말 고양이를위한 엔티티 클래스가 필요하십니까, 당신은 "유형"옵션 애완 동물 엔티티를 가질 수 있습니다.)

체크 한 후 DB를 쿼리, 로그인 보장하기 위해 보안 컨텍스트를. 그것은 다시 거짓 오면 당신이이 결과를 일단

$em = $this->getDoctrine()->getManager(); 

    $ownersCats = $em->getRepository('PetsPetSiteBundle:Blog')->findBy(array('type'=>'cat')); 

또는 하나 개의 결과에 대한

$ownersCats = $em->getRepository('PetsPetSiteBundle:Blog')->findOneBy(array('type'=>'cat')); 

, 당신은 그가 어떤 고양이가 없습니다 알고있다. 그렇지 않으면 계속하십시오.

당연히 페이지에서 엔티티를 사용하거나 카운트 쿼리를 수행하지 않고 0보다 큰지 확인하려는 경우 ID 만 쿼리하면 더 쉽게 수행 할 수 있습니다.