我的ORM - Paris和Idiorm - 似乎不支持传递给构造函数的白名单参数,来自客户端。
$fruit = Model::factory('Fruit')->create($_POST);
如果我希望用户只能选择一些参数,比如颜色,而不是其他参数,比如价格,我该怎么做?必须以某种方式过滤$_POST
。我在Idiorm /巴黎的文档或来源中找不到任何内容。
答案 0 :(得分:1)
你可以这样做:
$fruit = Model::factory('Fruit')->create(
array_intersect_key($_POST, array('color' => 1,))
);
函数array_intersect_key
将返回键出现在两个数组中的键值对,并且值将从第一个数组中获取 - 因此$_POST
必须首先出现。
您可以在第二个参数中添加新的键值 - 这些键的值可以是任何值。