ホームページ  >  に質問  >  本文

フィールドの制約アノテーションを別のフィールドと比較して検証する

<p>Symfony/5.4 には次のエンティティ クラスがあります:</p> <pre class="brush:php;toolbar:false;">DoctrineORMMaping を ORM として使用します。 SymfonyComponentValidatorConstraints をアサートとして使用します。 クラス割り当て { public const SALARY_RANGES = [ '赤'、 '緑'、 ヌル、 ]; /*** @ORMColumn(長さ=255、nullable=true) * @AssertChoice(choices=Assignments::SALARY_RANGES, strict=true)*/ プライベート ?文字列 $salaryRange; /*** @ORMManyToOne(targetEntity="従業員", inversedBy="割り当て") * @ORMJoinColumn(name="employee_id", ReferencedColumnName="id", onDelete="CASCADE")*/ プライベート ?従業員 $従業員; }</pre> <p>employee が null でない場合、salaryRange が null 以外の値を持つこと、またその逆の場合も同様であることを確認する必要があります。制約アノテーションを使用してこの要件を強制することはできますか?</p> <p>@AssertCallback を使用しようとしていますが、他のフィールドの値を取得する方法がわかりません。もしかしたらそれは適切なツールではないかもしれません。 </p> <pre class="brush:php;toolbar:false;">/*** @AssertCallback({"ExampleValidator", "assertEmployeeOnlyCallback"})*/</pre> <pre class="brush:php;toolbar:false;">パブリック静的関数assertEmployeeOnlyCallback(mixed $data, ExecutionContextInterface $context): void { // `$data` には `salaryRange` の値が含まれていますが、`employee` はどこにあるのでしょうか? }</pre> <p><br /></p>
P粉321676640P粉321676640476日前530

全員に返信(1)返信します

  • P粉107991030

    P粉1079910302023-07-24 10:28:57

    ドキュメントに従ってください。

    https://symfony.com/doc/5.3/reference/constraints/Callback.html

    リーリー

    返事
    0
  • キャンセル返事