私はDBテーブルに対して検証したい選択フィールド(ドロップダウン)を持っています。symfony 3選択検証問題
値がクエリの結果に含まれている場合は、基本的に有効です。
それはしかし、私はvalidation.yml
ファイル持ってsymfonyのガイドで報告されたコールバックがどのように機能するか:(
私にはそれほど明確ではないのです。
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