Laravel: Validate GET parameters

In one of our Laravel 5.6 applications at work I had to validate the data of an incoming POST request to our API.

Validation of POST data is easily done with custom Request classes that provide their validation checks via the rules() method.

A different issue are GET parameters that we got via our route definition, because the Request objects only validate POST data.

My solution was to manually add the relevant GET parameters to array-of-data-to-validate by overwriting the all() method:

app/Http/Requests/SomethingWithAType.php
    /**
     * Inject GET parameter "type" into validation data
     *
     * @param array $keys Properties to only return
     *
     * @return array
     */
    public function all($keys = null)
    {
        $data = parent::all($keys);
        $data['type'] = $this->route('type');
        return $data;
    }

Written by Christian Weiske.

Comments? Please send an e-mail.