Kou*_*sha 3 php validation laravel
我想添加多个自定义验证,每个验证都是自己的文件.
到目前为止,我已将app/start/global.php文件修改为
global.php
ClassLoader::addDirectories(array(
app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',
app_path().'/validators' // <--- Added this folder
));
// Only the first resolver works.
// I cannot seem to have multiple of these files
Validator::resolver(function($translator, $data, $rules, $messages)
{
return new ScheduleValidator($translator, $data, $rules, $messages);
});
Validator::resolver(function($translator, $data, $rules, $messages)
{
return new UserValidator($translator, $data, $rules, $messages);
});
Run Code Online (Sandbox Code Playgroud)
我的每个验证文件都在/validatorsas中
ScheduleValidator.php
class ScheduleValidator extends Illuminate\Validation\Validator
{
protected $implicitRules = array('Required', 'RequiredWith', 'RequiredWithout', 'RequiredIf', 'Accepted', 'RequiredWithoutField');
public function __construct(\Symfony\Component\Translation\TranslatorInterface $translator, $data, $rules, $messages = array())
{
parent::__construct($translator, $data, $rules, $messages);
$this->isImplicit('fail');
}
/**
* Validates type to be of the type 'common', 'template', or 'revision'
*/
public function validateTypeSchedule($attribute, $value, $parameters = null)
{
$valid_types = ['template', 'common', 'revision'];
return in_array($value, $valid_types);
}
// and the other validators ...
}
Run Code Online (Sandbox Code Playgroud)
那么如何添加多个这些验证器呢?
我通过制作所有单独的验证器特征来解决这个问题,因此我的一个自定义验证器可以简单地"使用"我的特征并仍然将它们分开.
我的验证员:
<?php
use Illuminate\Validation\Validator as LaravelValidator;
class CustomValidator extends LaravelValidator {
use PhoneValidatorTrait;
}
Run Code Online (Sandbox Code Playgroud)
我的特点:
<?php
class PhoneValidatorTrait {
public function validateSomething(){ ... }
}
Run Code Online (Sandbox Code Playgroud)
解析:
<?php
Validator::resolver(function($translator, $data, $rules, $messages)
{
return new CustomValidator($translator, $data, $rules, $messages, []);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2346 次 |
| 最近记录: |