FormRequest 自定義獲取方法名字

CrazyZard發表於2020-06-22

之前系統已經引用了自定義表單驗證,但是隻通過POST,PUT方法去區別的話,有些介面驗證請求會重複

<?php
namespace App\Http\Requests;

use Symfony\Component\HttpKernel\Exception\HttpException; // 注意是丟擲這個型別的異常。
use Illuminate\Contracts\Validation\Validator;
use \Illuminate\Foundation\Http\FormRequest as BaseFormRequest;

class FormRequest extends BaseFormRequest{

    //主要是重寫這個方法。
    protected function failedValidation(Validator $validator)
    {
        throw new HttpException(401, $validator->errors()->first());
    }

    //獲取方法名字
    public function getRouteActionName()
    {
        $action = $this->route()->getAction();
        $controller = '@';
        if (isset($action['uses'])) {
            $controller = class_basename($action['uses']);
        }

        list($routeControllerName, $routeActionName) = explode('@', $controller);
        return $routeActionName;
    }
}

只需在各個子類中呼叫方法即可

本作品採用《CC 協議》,轉載必須註明作者和本文連結

快樂就是解決一個又一個的問題!

相關文章