Laravel自定義驗證(Validate)規則最簡單方法
阿新 • • 發佈:2019-01-11
1、Validate
<?php /** * @Author: leroi * @Date: 2018-12-13 11:26:48 * @Last Modified by: leroi * @Last Modified time: 2018-12-13 13:28:55 */ namespace App\Http\Requests\LoRa; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; /** * */ class Test { public static function search($data){ $rules = [ 'tags' => ['integer','max:30',function($attribute,$value,$fail){ if ($value <= 10) { $fail(':attribute must be at least 10.'); } }] ]; $messages = [ ]; return self::compileErrMsg($data, $rules, $messages); } private static function compileErrMsg($data, $rules, $messages){ $validator = Validator::make($data, $rules, $messages); if($validator->fails()){ $result = []; foreach(json_decode(json_encode($validator->errors()),true) as $k => $v){ $result[$k] = $v[0]; } return $result; die; } return false; } }
2、Controller
<?php /** * @Author: leroi * @Date: 2018-11-27 17:03:51 * @Last Modified by: leroi * @Last Modified time: 2018-12-13 11:46:50 */ namespace App\Http\Controllers\api; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Redis; use App\Http\Requests\LoRa\Test; /** * */ class TestController extends Controller { public function test(Request $request){ $input = $request->only(['tags']); if($validate_error = Test::search($input)){ return $validate_error; } return []; } }