Тот же маршрут по первой ссылке работает, а по второй нет. Ларавель 5.6

Файл маршрута web.php:

Route::get('/download/received/{image_id}/{isoriginal?}', 'DownloadController@download_recv_image');

Вид:

    <li><a href="{{action('DownloadController@download_recv_image', [$image->id, true])}}">Download {{strtoupper($image->extension)}}</a></li>

    <li><a href="{{action('DownloadController@download_recv_image', $image->id)}}">Download PNG</a></li>

Функция в контроллере:

    public function download_recv_image($image_id, $original=false){...}

Это функция для загрузки полученного изображения. Когда я нажимаю на первую ссылку в представлении, вызывается маршрут и выполняется функция. Но по второй ссылке, где я не отправляю второй параметр, он возвращает мне ошибку 404, и похоже, что он не может перехватить маршрут.

(У меня есть еще одна функция для загрузки пользовательских изображений, с той же логикой для определения маршрута в двух других ссылках, и там все работает.)


person Denis2310    schedule 25.07.2018    source источник
comment
посмотрите и посмотрите, какой URL-адрес заканчивается в теге привязки для этого второго   -  person lagbox    schedule 26.07.2018
comment
когда я нажимаю на второй, маршрут localhost:8000/download/received/2, но он возвращает ошибку 404   -  person Denis2310    schedule 26.07.2018
comment
Я попытался вернуть некоторую строку в начале функции контроллера, чтобы проверить ее, проникла ли она внутрь, но это не так.   -  person Denis2310    schedule 26.07.2018
comment
Это не сработало, но я нашел решение. Спасибо   -  person Denis2310    schedule 26.07.2018


Ответы (1)


Я нашел, где проблема.

Это потому, что над этим маршрутом у меня есть другой маршрут, называемый:

Route::get('download/{image_id}/{isoriginal?}', 'DownloadController@download_user_image');

Я изменил второй маршрут на /received/download вместо /download/received

Это беспорядок, потому что оба маршрута имеют одинаковое начало и перепутаны параметры.

person Denis2310    schedule 25.07.2018