如何在Laravel中验证精确的单词?
要验证数据,您可以使用验证类。验证有助于验证数据以及向用户显示错误消息。
要获得要验证的精确单词,您可以使用Laravel提供的Rule::in方法。
使用Rule::in方法,此规则提供的任何值都必须匹配,否则将失败。
示例1
使用Rule::in方法
要使用Rule::in方法,您需要包含类:use Illuminate\Validation\Rule; 或 use Rule;
$input = [ 'category' => ['ABC', 'XYZ'], ]; Validator::make($input, [ 'category' => [ 'required', 'array', Rule::in(['ABC', 'TIK']), ], ]);
这里$input数组包含一个类别,其值为ABC和XYZ。Rule::in包含两个值ABC和TIK的数组。Rule::in期望数组与输入数据中给出的数组完全匹配,否则将失败。
由于Rule::in规定是ABC和TIK,与ABC和XYZ不匹配。因此,上述对$input的验证将失败。
示例2
在这个例子中,我们将测试使用Rule::in匹配的精确单词。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Routing\Router; use Illuminate\Validation\Rule; class testuserip extends Controller { public function index() { $input = array("name" => "Riyan"); $rules = [ 'name' => [ Rule::in('Riyan')] ]; // validate $validator = Validator::make($input, $rules); if ($validator->fails()) { echo "Word does not match"; } else { echo "Word matches"; } } }
输出
以上代码的输出为:
Word matches
示例3
在这个例子中,我们将使用in:表达式来测试精确的单词。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Routing\Router; use Illuminate\Validation\Rule; class testuserip extends Controller { public function index() { $input = array("name" => "Disha"); $rules = [ 'name' => 'in:Disha', ]; // validate $validator = Validator::make($input, $rules); if ($validator->fails()) { echo "Word does not match"; } else { echo "Word matches"; } } }
输出
以上代码的输出为:
Word matches
示例4
您可以像下面示例中所示那样在规则内使用正则表达式。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Routing\Router; use Illuminate\Validation\Rule; class testuserip extends Controller { public function index() { $input = array("name" => "Disha"); $rules = [ 'name' => 'regex:/^Disha$/', ]; // validate $validator = Validator::make($input, $rules); if ($validator->fails()) { echo "Word does not match"; } else { echo "Word matches"; } } }
输出
以上代码的输出为:
Word matches
广告