【发布时间】:2012-12-08 12:48:45
【问题描述】:
我的表单中有一些区域,例如:
<ul>
<li>
<input type="checkbox" name="post_categories[]" value="16">English First Main Category<br>
<ul>
<li><input type="checkbox" name="post_categories[]" value="17">English First Subcategory<br></li>
</ul>
</li>
</ul>
当我尝试将它们验证为必填字段或其他内容时,Laravel 没有验证规则。我的规则如下(在 /application/models/posts.php 中):
public static $rules = array(
'post_title' => 'required',
'post_body' => 'required',
'content_language'=>'required|alpha',
'post_categories'=>'array_numeric',
'post_sequence_number'=>'numeric'
);
public static function validate($data){
return Validator::make($data, static::$rules);
}
在 /application/library/validate.php 我有一个验证数组是否为数字的函数:
Class Validator extends Laravel\Validator {
public function validate_array_numeric($attribute, $value, $parameters){
$numeric_values = array_filter($value, create_function('$item', 'return (is_numeric($item));'));
return count($numeric_values) == count($value);
}
}
规则完美运行,除了 post_categories[]。我得到了错误:
Method [array_numeric] does not exist.
干杯。
【问题讨论】:
-
我会先尝试取消嵌套,然后删除方括号。可能是 Laravel 框架中的错误?
-
试过了...我想是的,有一个错误...
-
另一个想法是它们是同名的两个输入。这样做对吗?
-
我只见过同名 attr 的单选按钮。如果两个复选框都被选中了,哪个值将与表单数据一起提交?
-
复选框是一样的。
标签: php arrays validation laravel