You are here

请问关于entity_metadata_wrapper的传值验证问题

流云 的头像
Submitted by 流云 on 星期日, 2013-08-04 09:29
$node = node_load(320);
$node_wrapper = entity_metadata_wrapper('node', $node);
$temp = $node_wrapper->field_score_judge8->set('ffffff');
$temp = $node_wrapper->save();
请问下,如果字段类型是整数,但是我传入的是一个字符串,在上面代码中的set的步骤就会出错了,而不是返回FALSE,那么我是不是在set前,必须要先判断这个字符串是否符合这个字段的验证规则呢?
如果是这样,那么有没有一个可以验证某个值是否符合一个字段的验证规则的API呢?比如我传入字段名和一个值,它能判断这个值是否符合这个字段的验证规则。 ($field_name, $value)
 

论坛:

Drupal版本:

g089h515r806 的头像

PHP是弱类型的语言,我们已经习惯了,类型的自动转换。

entity_metadata_wrapper,里面,是强类型的。需要自己去转这个。

 

这个应该有现成的,比如is_integer(具体需要查API了)之类,PHP语言本身就有这样的API函数,判断是不是字符串,是不是整数。如果没有的话,可以使用正则表达式进行判断。

流云 的头像

多谢老葛,我其实是想问下drupal里的字段验证,有没有一个统一的API什么的去验证。就像我说的,传入字段名和要提交的值,函数就会判断这个值符不符合这个字段的验证规则。

($field_name, $value);

这个函数会根据字段名去找到这个字段的类型,是否必填等相关设置,然后会对value做验证。

另外我还用了您写的的field validation模块添加了进一步的规则,比如位数验证,如果能一起支持就更好了...