sourcefragment / laravel-validation
1.0
2020-04-14 04:26 UTC
Requires
- php: >=5.4.0
- illuminate/support: ~5.4|^6.0|^7.0
- illuminate/validation: ~5.4|^6.0|^7.0
This package is auto-updated.
Last update: 2024-09-28 15:34:15 UTC
README
安装
将 "sourcefragment/laravel-repository": "1.0" 添加到 composer.json 中
"sourcefragment/laravel-repository": "1.0"
创建验证器
验证器包含添加、编辑的规则。
Sourcefragment\Validator\Contracts\ValidatorInterface::RULE_CREATE;
Sourcefragment\Validator\Contracts\ValidatorInterface::RULE_UPDATE;
在下面的示例中,我们定义了创建和编辑的一些规则
use \Sourcefragment\Validator\LaravelValidator;
class PostValidator extends LaravelValidator {
protected $rules = [
'title' => 'required',
'text' => 'min:3',
'author'=> 'required'
];
}
要定义特定规则,请按照以下步骤操作
use \Sourcefragment\Validator\LaravelValidator;
class PostValidator extends LaravelValidator {
protected $rules = [
ValidatorInterface::RULE_CREATE => [
'title' => 'required',
'text' => 'min:3',
'author'=> 'required'
],
ValidatorInterface::RULE_UPDATE => [
'title' => 'required'
]
];
}
自定义错误消息
您可以使用自定义错误消息进行验证,而不是默认消息
protected $messages = [
'required' => 'The :attribute field is required.',
];
或者,您可能只想为特定字段指定自定义错误消息。
protected $messages = [
'email.required' => 'We need to know your e-mail address!',
];
自定义属性
您也可以使用自定义名称属性
protected $attributes = [
'email' => 'E-mail',
'obs' => 'Observation',
];
使用验证器
use \Sourcefragment\Validator\Exceptions\ValidatorException;
class PostsController extends BaseController {
/**
* @var PostRepository
*/
protected $repository;
/**
* @var PostValidator
*/
protected $validator;
public function __construct(PostRepository $repository, PostValidator $validator){
$this->repository = $repository;
$this->validator = $validator;
}
public function store()
{
try {
$this->validator->with( Input::all() )->passesOrFail();
// OR $this->validator->with( Input::all() )->passesOrFail( ValidatorInterface::RULE_CREATE );
$post = $this->repository->create( Input::all() );
return Response::json([
'message'=>'Post created',
'data' =>$post->toArray()
]);
} catch (ValidatorException $e) {
return Response::json([
'error' =>true,
'message' =>$e->getMessage()
]);
}
}
public function update($id)
{
try{
$this->validator->with( Input::all() )->passesOrFail( ValidatorInterface::RULE_UPDATE );
$post = $this->repository->update( Input::all(), $id );
return Response::json([
'message'=>'Post created',
'data' =>$post->toArray()
]);
}catch (ValidatorException $e){
return Response::json([
'error' =>true,
'message' =>$e->getMessage()
]);
}
}
}
作者
Krutarth Patel - contact@sourcefragment.com
致谢
http://culttt.com/2014/01/13/advanced-validation-service-laravel-4/