DB 테이블에 대해 유효성을 검사 할 선택 필드 (드롭 다운)가 있습니다.symfony 3 선택 확인 문제
기본적으로 값이 쿼리 결과에있는 경우 유효합니다. 그것은 심포니 가이드에보고 된 콜백이 작동하는 방법 :(그러나
내게 너무 분명하지 않다
는, 나는 validation.yml
파일이 있습니다
User\UserBundle\Entity\Group:
properties:
role:
- Choice:
groups: [signUp]
callback: [User\UserBundle\Entity\Group, getRoles]
엔티티를 Group.php
class Group
{
/** @var int */
private $id;
//...
public static function GetRoles()
{
return ['admin', 'user'];
}
}
이 예제는 잘 작동하지만 그룹 리포지토리에서 해당 값을 가져 오려고하면 문제가 발생합니다. GroupRepository.php
class GroupRepository extends EntityRepository
{
public function getRoles()
{
return $this->createQueryBuilder('r')
->getQuery()
->getResult();
}
}
이 단계에서 나는 무엇을해야합니까? 내가 사용한 접근법이 정확합니까? 아니면 validation.yml
에 직접 그룹 저장소를 호출해야합니까? 아니면 내가 완전히 벗어 났을 까? 난 당신이 같은 저장소에서 이러한 옵션을 얻으려고 알고있는 것처럼
를 참조하십시오 데이터베이스 데이터를 기반으로합니다. – xabbuh
사용자 지정 유효성 검사 클래스를 만들어야합니다. 그리고 유효성 검사기 내부의 데이터베이스에 액세스해야하기 때문에 서비스로 선언하고 ORM https://symfony.com/doc/current/validation/custom_constraint.html#constraint-validators-with- dependencies를 삽입해야합니다. – sdespont