Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Kohana 3中,只有当字段';在$U POST中重新设置?_Php_Kohana_Kohana 3 - Fatal编程技术网

Php 在Kohana 3中,只有当字段';在$U POST中重新设置?

Php 在Kohana 3中,只有当字段';在$U POST中重新设置?,php,kohana,kohana-3,Php,Kohana,Kohana 3,通常,您可以使用如下代码来验证传入数据: $post = Validate::factory($_POST); $post->rules('field_name', array( 'not_empty' => null, // Must be non-empty. 'regex' => '/\d+/' // Must be a digit. )); [是,我知道将字段验证规则移动到模型] 在这种特殊情况下,我只想验证某些字段,前提是它们实际上存在于$\u

通常,您可以使用如下代码来验证传入数据:

$post = Validate::factory($_POST);
$post->rules('field_name', array(
    'not_empty' => null, // Must be non-empty.
    'regex' => '/\d+/' // Must be a digit. 
)); 
[是,我知道将字段验证规则移动到模型]

在这种特殊情况下,我只想验证某些字段,前提是它们实际上存在于$\u POST数据中

这是通过省略
not_empty
规则来实现的,还是
regex
规则(在本例中)仍然不满足,并且验证失败?(我的假设)

这看起来可能会解决问题(还没有尝试过),但我想知道这是否是这种情况下的最佳实践,或者这是否是“正确的方法”


科哈纳路是什么

not_empty只会确保值不是空的(空数组、null、false,--更像是!empty()作为函数,而不是lang.construct)


您可以手动执行此操作(如您所建议的),尽管回调在您的情况下似乎是一个更有效的解决方案(这将检查您的条件,它是否真的必须是$\u POST,也许您还想检查其他数组的那些键/条件)。

在这种情况下,我想更新一个已经保存到数据库中的模型。我当然需要ID来检索原始记录。除此之外,如果只向我传递了一个ID和一个“描述”,我不需要验证已经存在的其他字段,就像我在创建过程中所做的那样。这有意义吗?您的意思是说,如果存在/不存在信息,那么在模型上使用一个回调函数来验证信息吗?或者别的什么?是的,单回调方法可以做到:)
$post->rules( /*... some rules I always want... */ ); 
if (isset($_POST['field_name'])) {
    $post->rules( /* ... conditionally applied rules ... */ ); 
}