Laravel 表单自定义验证
需求:我们想判断一个字段是图片或者是图片地址
创建自定义验证类
# App/Validators/CustomValidator.php
<?php
namespace App\Validators;
use Illuminate\Validation\Validator as Validator;
class CustomValidator extends Validator
{
protected function validateImageOrUrl($attribute, $value, $parameters)
{
return ($this->validateImage($attribute, $value, $parameters)
or $this->validateActiveUrl($attribute, $value, $parameters));
}
}
注册自定义验证类到app容器
在 App/Providers/AppServiceProvider.php 文件的 boot() 方法中进行注册
# App/Providers/AppServiceProvider.php
<?php
namespace App\Providers;
use App\Validators\CustomValidator;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
// 添加自定义验证类
$this->app['validator']->resolver(function ($translator, $data, $rules, $messages) {
return new CustomValidator($translator, $data, $rules, $messages);
});
}
}
应用自定义规则
# App/Http/Requests/*.php
public function rules()
{
return [
'image' => 'image_or_url',
]
}