【发布时间】:2013-03-06 13:53:26
【问题描述】:
我刚刚写了我的第一篇文章,所以如果我做错了什么,请告诉我! 我的问题:我想验证 url 给出的数据。
../Logs/requests?from=2011-10-18T16:15:00&to=2011-10-18T16:30:00&fmt=csv
我刚刚发现有一个选项可以使用添加到模型的规则进行验证。
public $validate = array(
'request_id' => array(
'alphaNumeric' => array(
'rule' => 'alphaNumeric',
'required' => true,
'message' => 'Alphabets and numbers only'
),
)
);
在控制器中使用“ModelName->set($params)”,然后“ModelName->validates()”函数应该提供答案,如果它是否有效。我的解决方案与http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html 的解决方案之间的唯一区别是 是我的控制器使用几个模型来收集响应数据。 问题是“validates()” - 函数只会返回“有效”,即使我输入了特殊字符或其他应该是“无效”的东西 - 由模型规则签名。 救命!
【问题讨论】:
-
您能否将
$params变量的内容添加到您的问题中?您可能需要向 $params 数组添加一个 ModelAlias 键,如下所示;$params = array('MyModelAlias' => $params); -
我刚刚用这个“$params = array('request_id'=>'4*G/&2')”测试了它。
-
添加:问题是,我不想插入。我只是想稍后验证并选择。 (感谢您的快速响应:))
-
$params = array('request_id'=>'4*G/&2')工作了吗?如果不试试这个;$params = array('ModelName' => array('request_id'=>'4*G/&2'));。您是正确的,您可以手动“验证”数据,而不保存它,但是,模型将在“参数”数据中查找以模型“别名”命名的键(例如“模型名称”)和仅验证该键内的字段。如果缺少 ModelAlias 键,它将找不到要验证的“字段” -
嗯,我把它改成了“$params = array('LogBackend' => array('request_id'=>'4*G/&2'));”
标签: php validation cakephp