要在Laravel中創建和使用自定義驗證規則,您可以遵循以下步驟:
定義自定義規則:
您可以使用規則對象定義自定義驗證規則。創建一個擴展Illuminate\Validation\Rules\Rule
新類。例如,如果要驗證一個字段包含一個特定單詞,則可以創建一個名為ContainsWord
的類。
<code class="php">use Illuminate\Contracts\Validation\Rule; class ContainsWord implements Rule { private $word; public function __construct($word) { $this->word = $word; } public function passes($attribute, $value) { return stripos($value, $this->word) !== false; } public function message() { return "The :attribute must contain the word :word."; } }</code>
使用自定義規則:
要在控制器或表單請求中使用自定義規則,您可以實例化規則並將其傳遞給validate
方法。
<code class="php">use App\Rules\ContainsWord; $request->validate([ 'title' => ['required', new ContainsWord('Laravel')], ]);</code>
在表單請求中使用自定義規則:
如果您使用的是表單請求,則可以在rules
方法中包括規則。
<code class="php">use App\Rules\ContainsWord; use Illuminate\Foundation\Http\FormRequest; class StorePostRequest extends FormRequest { public function rules() { return [ 'title' => ['required', new ContainsWord('Laravel')], ]; } }</code>
在Laravel中使用自定義驗證規則提供了幾個好處:
可重複使用:
表現力:
特異性:
一致性:
可檢驗性:
為了使用您自己的自定義規則擴展Laravel的驗證系統,您可以遵循以下方法:
使用規則對象:
Illuminate\Validation\Rules\Rule
類。這是複雜規則的首選方法。使用關閉:
對於簡單的規則,您可以在驗證規則中定義關閉。
<code class="php">$request->validate([ 'title' => [ 'required', function ($attribute, $value, $fail) { if (stripos($value, 'Laravel') === false) { $fail('The '.$attribute.' must contain the word "Laravel".'); } }, ], ]);</code>
擴展驗證器:
您可以擴展Validator
立面以添加可以在整個應用程序中使用的新規則。
<code class="php">use Illuminate\Support\Facades\Validator; Validator::extend('contains_word', function ($attribute, $value, $parameters, $validator) { $word = $parameters[0]; return stripos($value, $word) !== false; }); Validator::replacer('contains_word', function ($message, $attribute, $rule, $parameters) { return str_replace(':word', $parameters[0], $message); });</code>
然後,您可以在驗證中使用自定義規則。
<code class="php">$request->validate([ 'title' => 'required|contains_word:Laravel', ]);</code>
有幾種資源可以找到有關Laravel中實施自定義驗證規則的示例和教程:
Laravel官方文件:
拉卡斯特:
拉維爾新聞:
Github:
堆棧溢出:
Laravel社區博客:
通過利用這些資源,您可以更深入地了解如何有效地在Laravel中實施自定義驗證規則。
以上是如何在Laravel中創建和使用自定義驗證規則?的詳細內容。更多資訊請關注PHP中文網其他相關文章!