Uma
Uma

Reputation: 109

How to pass `?` with url in laravel?

I am passing comments through the GET method, which contains special characters including ?. I am using the following code in route.

Route::get('CustRequest/{id}/{comment}', 'ApprovalController@CustomerRequest')->where('comment', '(.*)');

It working well for other special characters except for ?.

Upvotes: 1

Views: 398

Answers (1)

Muhammad Dyas Yaskur
Muhammad Dyas Yaskur

Reputation: 8088

You should change ? from the URL to %3F which is URL encode for question mark(?).

The question mark is a part of URI generic syntax which consists of a hierarchical sequence of five components:

URI = scheme:[//authority]path[?query][#fragment]

The question mark is the generic syntax to separate path and query string and you can not change that syntax. So change the ? from the URL to %3F is a must.

Long text in the path is not best practice, you should change the comment from the path to query string, an example to domain/custrequest/id/?comment=blabla+http://dom.main/?ex=sss and get it from the controller as request()->comment you can get ? data after the first question mark.

another reference: What is a question mark in URL

Upvotes: 3

Related Questions