我需要讓我自己的驗證,擴展Illuminate\Validation\Validator
Laravel如何製作自定義驗證器?
我已閱讀這裏的答案給出的例子:Custom validation in Laravel 4
但問題是它沒有清楚地顯示瞭如何使用自定義的驗證。它不顯式調用自定義驗證程序。你可以給我一個例子如何調用自定義驗證器。
我需要讓我自己的驗證,擴展Illuminate\Validation\Validator
Laravel如何製作自定義驗證器?
我已閱讀這裏的答案給出的例子:Custom validation in Laravel 4
但問題是它沒有清楚地顯示瞭如何使用自定義的驗證。它不顯式調用自定義驗證程序。你可以給我一個例子如何調用自定義驗證器。
我不知道這是你想要的,但要設置海關規則,你首先必須擴展自定義規則。
Validator::extend('custom_rule_name',function($attribute, $value, $parameters){
//code that would validate
//attribute its the field under validation
//values its the value of the field
//parameters its the value that it will validate againts
});
則該規則添加到您的驗證規則
$rules = array(
'field_1' => 'custom_rule_name:parameter'
);
Laravel 5.5後,您可以創建自己的自定義驗證規則對象。
爲了創造新的規則,只需運行工匠命令:
php artisan make:rule GreaterThanTen
laravel將會把新規則類的app/Rules
目錄
自定義對象驗證規則的例子看起來是這樣的:
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class GreaterThanTen implements Rule
{
// Should return true or false depending on whether the attribute value is valid or not.
public function passes($attribute, $value)
{
return $value > 10;
}
// This method should return the validation error message that should be used when validation fails
public function message()
{
return 'The :attribute must be greater than 10.';
}
}
隨着定義的自定義規則,你可以用它在你的控制器的驗證,像這樣:
public function store(Request $request)
{
$request->validate([
'age' => ['required', new GreaterThanTen],
]);
}
這種方式是不是在AppServiceProvider
類
這裏創建
Closures
的老方法好得多是一個自定義的驗證規則的檢查[複合唯一列(一個例子http://stackoverflow.com/問題/ 26683762 /如何對附加聯合獨特的字段,驗證規則,在-laravel-26684043分之4#26684043)。 – Bogdan