传递ID的更好方法

时间:2013-01-28 14:17:23

标签: symfony

我对我的应用有疑问或担忧。经验告诉我,留下任何可能的方法来维护我的代码是非常非常糟糕的。所以现在,我有一个添加用户意见的表单。它有

  • 文字字段textarea
  • user_id字段input type="hidden"
  • 一个game_id字段input type="hidden"

现在我害怕的是,用户可能想要查看代码并找到这些字段。许多浏览器允许操作HTML(我们可以从Chrome更改类等)。因此,将value="1"更改为value="2"对他们来说不是问题。

我的问题是 - Symfony2中避免此类问题和风险的最佳实践是什么?

1 个答案:

答案 0 :(得分:1)

不是从表单中获取用户和游戏ID,而是可以在控制器中抓取它们,无论如何都要处理帖子并在那里处理这两个值。

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

获取当前所需值的可能方式(取决于游戏ID的来源当然)

编辑:

如果用户与多个游戏相关联,您可以像初始化一样移交gameId并通过dependecy注入直接投射到游戏类:

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

    if($user->getGames()->contains($gameId) {
     return true;
    }
}