在Idiorm和巴黎ORM阻止大规模任务

时间:2014-08-21 16:50:11

标签: php mass-assignment idiorm

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

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

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

1 个答案:

答案 0 :(得分:1)

你可以这样做:

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

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

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