【问题标题】:Prevent mass assignment in Idiorm and Paris ORM防止 Idiorm 和 Paris ORM 中的质量分配
【发布时间】:2014-08-21 16:50:11
【问题描述】:

我的 ORM - Paris 和 Idiorm - 似乎不支持从客户端传递给构造函数的白名单参数。

$fruit = Model::factory('Fruit')->create($_POST);

如果我希望用户只能选择一些参数,比如颜色,而不能选择其他参数,比如价格,我该怎么做? $_POST 必须以某种方式过滤。我在 Idiorm/Paris 的文档或源代码中找不到任何内容。

【问题讨论】:

  • 一张赞成票提醒我,去年我为您提供了一些帮助。这对您有帮助吗?

标签: php mass-assignment idiorm


【解决方案1】:

你可以这样做:

$fruit = Model::factory('Fruit')->create(
    array_intersect_key($_POST, array('color' => 1,))
);

函数array_intersect_key 将返回键值对,其中键出现在两个数组中,并且值将从第一个数组中获取 - 因此$_POST 必须位于第一位。

您可以在第二个参数中添加新的键值 - 这些键的值可以是任何值。

【讨论】:

  • 我想要更漂亮的内置巴黎本身,但既然没有这样的东西,我接受你的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多