私は Symfony 5.4 をあまり使用したことがなく、最近そのバージョンを使用して最初の API を作成しました
私の特定の API エンドポイントの場合、パラメーターの 1 つは ID の配列です。
次の方法で配列を検証する必要があります:
- これが配列であることを確認してください;
- 配列内の ID が実際にデータベース レコードを参照していることを確認してください。
私はこれを簡単な方法で実装し、型キャストと既存の
Repository:
を使用してエンティティを永続化する前に配列をチェックしました。
リーリー
ただし、これではコントローラーのアクションが「ボディポジティブ」になりすぎて、もっとエレガントな方法で実装できるように感じます。
Symfony 5.4 ドキュメントには何も見つかりません。
現時点で知りたいのは次のような場合です:
Symfony にはリクエストパラメータをフィルター/クリーンする方法があります;-
リクエスト パラメーターにカスタム バリデーター制約を適用するエレガントな組み込みの方法があります (十分に文書化されたエンティティ フィールドの検証と同様)。
-
完全なエンドポイント コード:
ああああ
認証 サービスでデータ転送オブジェクト (DTO) を使用できます。 事前定義された制約 が多数ありますが、カスタム制約を作成することもできます。
たとえば、単純な制約を注釈として使用する方法:
リーリー次に、データを DTO に割り当てます:
リーリー場合によっては、DTO でコンストラクターを定義し、 から をリクエストして、それをすぐに DTO に渡す方がよい場合があります。
リーリー次に、それを確認します:
リーリー