在单个控制器中使用 2 个不同的 FormRequests

Use 2 different FormRequests in a single controller

是否可以在单个 Controller 中使用 2 个不同的 FormRequest 验证,一个用于 store,另一个用于 index,怎么样?

我使用 method() 到 returns 与 rules() 不同的验证,例如:

public function rules()
{

    if($this->method() == 'GET')
    {
        return [
            'customer' => 'required|numeric',
        ];
    }

    if($this->method() == 'POST')
    {
        return [
            'author' => 'required|numeric',
        ];
    }
}

但看起来很不舒服

您可以在一个控制器中使用 2 个不同的 Formrequest。

我是这样操作的

class PostController extends Controller
{

    public function index(ManagePostRequest $request){
       // your code goes here
    }

    public function create(CreatePostRequest $request){
       // your code goes here
    }

    public function store(StorePostRequest $request){
       // your code goes here
    }
}

所以根据方法你可以在表单请求中有不同的rules。您也可以将它们用于 authorize 方法。

希望这就是你问的问题,因为我对这个问题有点不清楚。