1

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

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

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

4

1 回答 1

1

你可以这样做:

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

该函数array_intersect_key将返回键值对,其中键出现在两个数组中,并且值将从第一个数组中获取 - 所以$_POST必须先出现。

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

于 2014-08-21T17:18:01.183 回答