0

アプリに問題があるか、懸念があります。経験から、コードを維持するための可能な方法を残すことは非常に悪いことであることがわかりました。これで、ユーザーの意見を追加するフォームができました。それは持っています

  • テキストフィールドtextarea
  • user_idフィールドinput type="hidden"
  • game_idフィールド input type="hidden"

今私が恐れているのは、ユーザーがコードを見てそれらのフィールドを見つけたいと思うかもしれないということです。多くのブラウザではHTMLを操作できます(Chromeからクラスなどを変更できます)。したがって、に変更value="1"してvalue="2"も問題はありません。

私の質問は-そのような問題やリスクを回避するためのSymfony2の最良の実践は何ですか?

4

1 に答える 1

1

フォームからユーザー ID とゲーム ID を取得する代わりに、コントローラーでそれらを取得することができます。これはとにかく投稿を処理し、そこで両方の値を処理します。

$user = $this->get('security.context')->getToken()->getUser();
$userId = $user->getId();
$gameId = $user->getGame()->getId();

現在必要な値を取得する可能な方法です (もちろん、ゲーム ID の取得元によって異なります)。

編集:

ユーザーが複数のゲームに関連付けられている場合は、最初に行ったように gameId を引き渡し、依存性注入を介して直接ゲーム クラスにキャストできます。

public function exampleAction(Game $gameId) {
    $user = $this->get('security.context')->getToken()->getUser();

    if($user->getGames()->contains($gameId) {
     return true;
    }
}
于 2013-01-28T14:31:35.053 に答える