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',
    ]
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章