protected function validate(array $data, $id = null)
{
if (!is_null($id)) {
$ignore = ',' . intval($id);
} else {
$ignore = '';
}
// The Validation rules.
$rules = array('name' => 'required|min:4|max:40|valid_name', 'slug' => 'required|min:4|max:40|alpha_dash|unique:roles,slug' . $ignore, 'description' => 'required|min:5|max:255');
$messages = array('valid_name' => __d('users', 'The :attribute field is not a valid name.'));
$attributes = array('name' => __d('users', 'Name'), 'slug' => __d('users', 'Slug'), 'description' => __d('users', 'Description'));
// Add the custom Validation Rule commands.
Validator::extend('valid_name', function ($attribute, $value, $parameters) {
$pattern = '~^(?:[\\p{L}\\p{Mn}\\p{Pd}\'\\x{2019}]+(?:$|\\s+)){1,}$~u';
return preg_match($pattern, $value) === 1;
});
return Validator::make($data, $rules, $messages, $attributes);
}