Laravel Target 类 [register] 从 5.8 版本迁移到 8 后不存在

Posted

技术标签:

【中文标题】Laravel Target 类 [register] 从 5.8 版本迁移到 8 后不存在【英文标题】:Laravel Target class [register] does not exist after migrate from version 5.8 to 8 【发布时间】:2021-06-11 15:32:26 【问题描述】:

我在Laravel 5.8 中有项目,我在Laravel 8 中创建了新项目,并将带有代码的文件移动到新项目中。 我的路线文件有路线:

use App\Http\Controllers\AccountController;
use Illuminate\Routing\Router;

/* @var $router \Illuminate\Routing\Router */
$router->get('/', ['uses' => 'PageController@home', 'as' => 'home']);

$router->group(['prefix' => 'account', 'middleware' => ['register', 'no-cache', 'timezone']], function (Router $router) 
   // $router->get('/dashboard', ['uses' => 'AccountController@dashboard', 'as' => 'account.dashboard']);
    $router->get('/dashboard', [AccountController::class, 'dashboard'])->name('account.dashboard');

当我在 url 视图中输入 home 时,会显示。但是当我输入 /account/dashboard 我得到错误:

Illuminate\Contracts\Container\BindingResolutionException
Target class [register] does not exist.

中间件有问题?为什么使用 PageController 和 home 的第一个路由有效,但 account.dashboard 在这两种情况下都不起作用(首先已注释)

RouteServiceProvider我未注释行:

protected $namespace = 'App\\Http\\Controllers';

现在可以了,我忘了加app\Http\Kernel.php

protected $routeMiddleware = [
        ...
        'admin' => AdminMiddleware::class,
    ]; 

路由器找不到admin前缀

【问题讨论】:

你遵循 Laravel 的官方升级指南了吗?您需要迭代升级版本(5->6->7->8)。 This 可能有用 是的,我做到了。我安装了所有东西。我的网站显示在 Laravel 8 中,但是当我使用这个 $router->group(['prefix' => 'account', 'middleware' ... 部分时我只有错误 您可以查看***.com/questions/63882034/…。 如果你输入account.dashboard会发生什么? 好的,我找到了,在app\Http\Kernel.php 我忘了添加到`protected $routeMiddleware = [ ..., 'admin' => AdminMiddleware::class, ];` 并且路由器找不到admin前缀 【参考方案1】:

正如罗伯特在评论部分指出的那样,app\Http\Kernel.php 'admin' 丢失了。显然,解决方案是向$routeMiddleware 数组中相应地添加一个项目,由 Robert 显示为

protected $routeMiddleware = [
        ...
        'admin' => AdminMiddleware::class,
    ]; 

【讨论】:

以上是关于Laravel Target 类 [register] 从 5.8 版本迁移到 8 后不存在的主要内容,如果未能解决你的问题,请参考以下文章

Auth::routes(['register' => false]);不能在 laravel 8 中工作

Illuminate\Contracts\Container\BindingResolutionException .Target 类 [MarketsouhaibController] 不存在。拉拉

有人可以通过这个laravel代码告诉我

站点打开后未加载 Laravel 5.4 服务提供商

Laravel 4 Auth::attempt() 总是返回 false

laravel 打印sql语句