【问题标题】:Laravel route returns 404 (Laravel 6.6.2)Laravel 路由返回 404 (Laravel 6.6.2)
【发布时间】:2021-01-31 23:05:45
【问题描述】:

我有多条路线,除了一条以外,每条路线都有效。即使我清除了缓存并检查了路由列表,我仍然收到 404 页面

php artisan route:list

| GET|HEAD| team/requests/{$teamId} | team_requests | App\Http\Controllers\TeamController@requests                           | web                          |

路线出现在列表中。

我的路线是这样的

Route::get('team/requests/{$teamId}', 'TeamController@requests')->name('team_requests');

我的控制器动作如下所示:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TeamController extends Controller
{

    public function requests(int $teamId)
    {
        $requests = User_Team::where('team_id', $teamId)->where('isInvitation', false)->get();
        $userRequests = [];
        foreach ($requests as $request) {
            $userRequests[] = User::find($request->user_id);
        }

        return view('requests')->with('requests', $userRequests);
    }
}

我目前正在使用 laravel localhost 服务器运行网站:

php artisan serve

我想我一定有错字,但我什么也找不到。有人也有这个问题吗?

我正在使用 Laravel 6.6.2

【问题讨论】:

  • 你没有在路由参数的定义中使用$,它只是{teamId},顺便说一句
  • 非常感谢!我在这件事上浪费了太多时间。它修复了它。

标签: php laravel routes


【解决方案1】:

感谢 lagbox 提供的解决方案。

问题是我在路由参数的定义中使用了 $。 删除它解决了这个问题。

【讨论】:

    【解决方案2】:

    在 route.php 中声明参数时,不需要用 '$' 声明。很简单,写{id}或{teamid},休息我觉得还可以。

    这里是documentation,介绍如何在路由中向 URL 添加参数。

    另外,我认为你应该升级到 Laravel 8,其中有一些很酷的功能。

    不过,您已经找到了解决方案,希望这也能有所帮助。谢谢你:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 2016-07-11
      • 1970-01-01
      • 2020-11-10
      • 2019-04-20
      相关资源
      最近更新 更多