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 ?
.
Advertisement
Answer
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