私は複雑なアクセス制御が必要なアプリケーションを持っています。そして、コントローラレベルで決定するために必要なものはVotersです。 しかし、私は別の方法で別のユーザーのためのフォームを構築する必要があります。 例:Admin(ROLE_ADMIN)とUser(ROLE_USER)があります。フィールドが含まれている投稿があり:Sf2/3さまざまな役割(ユーザー)に応じて異なるフォームを表示
- 著者
- 体
- 司会
- が
管理者が任意のポストのすべてのフィールドを編集することができなければならないタイムスタンプを発行しました。 ユーザーのみの特定のフィールド:published、body。 (ベイ・ウェイ、これはこの投稿の作者である場合に限りますが、これは有権者によって決定されます)。
可能な解決策は、dynamic form modificationです。しかし、もっと複雑なものが必要な場合、例えば投稿はブログに属し、ブログは著者に属します。そして投稿はブログの直接の著者と作者によって編集することができます。 ブログの作者はpostedAtフィールドを編集することもできますが、投稿の直接作成者はできません。
PRE_BINDリスナーにログインする必要があります。
多分、そのような状況のための一般的な習慣があるか、誰かが自分の例を示すことができます。
symfonyのバージョンは、使用します:
は最後に、あなただけのサービスとして拡張を保存する必要がありますか? symfony 2と3であなたの質問をタグ付けしました。あなたは古いバージョン2.3へのリンクと最新の3.1へのリンクを提供しました。 –
私は個人的に2つの異なるフォームを持つ方が簡単です。私はあなたがコードを繰り返さないようにしたいと思っていますが、時にはコピー/ペーストが必要なだけです。あるいは、2つのフォームから始め、重複する箇所を正確に知ったら、それらを再びマージすることができます。 – Cerad
@dragoste 2。8、すぐに3.1 – ZloyPotroh