Отправить адрес электронной почты с '@' и '.' (точка) как параметр - Laravel

У меня есть маршрут в api.php

Route::get('pelanggan/email/{email}/', 'PelangganController@cekEmail');

В Postman я попробовал эту конечную точку API с этим URL-адресом

http://localhost:8000/api/admin/pelanggan/email/[email protected]

Но он возвращает мне The requested resource /api/admin/pelanggan/email/[email protected] was not found on this server..

Кто-нибудь может помочь мне, пожалуйста, как я могу отправить [email protected] с .com в этом случае?


person Dani Fadli    schedule 26.11.2019    source источник
comment
Попробуйте URL, кодирующий адрес электронной почты.   -  person user3783243    schedule 26.11.2019
comment
Спасибо за ваш быстрый ответ, но не могли бы вы дать мне какой-нибудь учебник, чтобы сделать это, пожалуйста?   -  person Dani Fadli    schedule 26.11.2019
comment
кажется, ваш сервер не настроен должным образом, какой веб-сервер вы используете?   -  person lagbox    schedule 26.11.2019
comment
@lagbox MySQL, обычный MySQL   -  person Dani Fadli    schedule 26.11.2019
comment
@user3783243 user3783243 Я пробовал urlencode() по моему URL-адресу запроса. И заменяет точку на %2E. Но он возвращает тот же ответ   -  person Dani Fadli    schedule 26.11.2019
comment
какой веб-сервер, а не какая база данных   -  person lagbox    schedule 27.11.2019


Ответы (3)


я не нахожу никаких ошибок, это работает для меня. в вашем контроллере. здесь админ - ваш префикс ?? попробуй это в своем контроллере

public function cekEmail()
{
$email=request('email');
dd($email)
}
person umar_sharif    schedule 26.11.2019
comment
Да, я использую префикс admin - person Dani Fadli; 26.11.2019
comment
Ваш ответ мне не очень помог, но спасибо за ответ. - person Dani Fadli; 26.11.2019

Я нашел альтернативу. Перед запросом я использую PHP str_replace, чтобы заменить точку в адресе электронной почты другим символом, например *. Затем я отправляю его как параметр конечной точки API. Итак, теперь у меня есть desiya1@gmail*com в моем запросе. А на сервере я снова использую str_replace, чтобы заменить * точкой. Итак, у меня снова [email protected].

Спасибо за ваши подходы, ребята.

person Dani Fadli    schedule 26.11.2019

Пытаться

public function cekEmail($email)
{
  dd($email)
}

Я получил письмо в формате dd. посмотрите на скриншот.

person Jithesh Jose    schedule 26.11.2019
comment
Спасибо! Я пробовал, но он все равно возвращает The requested resource /api/admin/pelanggan/email/[email protected] was not found on this server, когда я ставлю точку в адресе. Я нашел альтернативу, по крайней мере, для этого случая. - person Dani Fadli; 26.11.2019