【问题标题】:Same route on first link it works, but on second not. Laravel 5.6第一个链接上的相同路线它有效,但第二个链接无效。拉拉维尔 5.6
【发布时间】:2018-07-25 22:45:46
【问题描述】:

路由文件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,看起来它无法捕获路由。

(我有另一个下载用户图像的功能,在另外两个链接中路由定义的逻辑相同,一切正常。)

【问题讨论】:

  • 查看并查看第二个锚标记中的最终 URL
  • 当我点击第二个时,路由是localhost:8000/download/received/2,但它返回错误404
  • 我试图在控制器函数的开头返回一些字符串只是为了测试它是否进入但它不是。
  • 它没有用,但我找到了解决方案。谢谢

标签: laravel routes laravel-5.6 laravel-controller


【解决方案1】:

我已经找到问题所在了。

那是因为在那条路线上方我有另一条路线:

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

我已将第二条路由更改为 /received/download 而不是 /download/received

搞砸了,因为两条路线的开头相同,而且参数搞砸了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2021-02-18
    • 1970-01-01
    • 2017-01-30
    • 2017-10-20
    相关资源
    最近更新 更多