Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

DavidBuchukuri's avatar

how to validate query parameters of a get request?

I am using form request validation on post requests. Is it possible to do the same thing on a get request with query parameters? Now i'm validating it like this, inside of a model's scope.

	public function scopeFilter($query, array $filters)
	{
		if (
			isset($filters['sort']) && isset($filters['by'])
			&& in_array($filters['sort'], ['name->en', 'name->ka', 'confirmed', 'recovered', 'deaths'])
			&& in_array($filters['by'], ['ASC', 'DESC'])
		) {
			$query->orderBy($filters['sort'], $filters['by']);
		}
	}

filter parameter comes from a controller

$statistics = Statistic::filter(request(['sort', 'by', 'search']))->get();
0 likes
3 replies
iftekhs's avatar
iftekhs
Best Answer
Level 13

You can use the same normal validating way like this ->

 $data = $request->validate([
        'sort' => 'required',
        'by' => 'required',
        'search' => 'required',
    ]);

It validates GET requests too.

1 like
iftekhs's avatar

If you have solved your question select the best answer and mark the thread as solved.

1 like
MohamedTammam's avatar

Yes, you can validate GET parameters as well using validate or any other equivalent method.

And if you want to make it optional, use nullable.

$request->validate([
	'sort' => ['nullable', 'string', Rule::in(['name->en', 'name->ka', 'confirmed', 'recovered', 'deaths'])],
	'by'   => ['nullable', 'string', Rule::in(['ASC', 'DESC'])],
]);
1 like

Please or to participate in this conversation.