私のフォームには次のような領域があります。
<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.
乾杯。