当前位置: 首页 > 知识库问答 >
问题:

laravel 8中的目标类不存在。

邰英毅
2023-03-14

当使用laravel 8创建一个新项目时,我得到了这个错误。

Illumb\Contracts\Container\BindingResolutionException目标类[SayhelloController]不存在。http://127.0.0.1:8000/users/john

<?php
    
use Illuminate\Support\Facades\Route;
     
Route::get('/', function () {
    return view('welcome');
});  
    
Route::get('/users/{name?}' , [SayhelloController::class,'index']);

在laravel文档中,Routes控制器类必须这样定义

 // Using PHP callable syntax...
Route::get('/users', [UserController::class, 'index']);

// Using string syntax...
Route::get('/users', 'App\Http\Controllers\UserController@index');

目标类

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SayhelloController extends Controller
{
    public function index($name = null)
    {
        return 'Hello '.$name;
    }
}

所以我确实做到了。

共有1个答案

陶飞英
2023-03-14

参考链接https://laravel.com/docs/8.x/upgrade

use App\Http\Controllers\SayhelloController;
Route::get('/users/{name?}' , [SayhelloController::class,'index']);

Route::get('/users', 'App\Http\Controllers\UserController@index');

然后在RouteServiceProvider.php

添加这一行

 /**
     * This namespace is applied to your controller routes.
     *
     * In addition, it is set as the URL generator's root namespace.
     *
     * @var string
     */
    protected $namespace = 'App\Http\Controllers'; // need to add in Laravel 8
    

public function boot()
{
    $this->configureRateLimiting();

    $this->routes(function () {
        Route::prefix('api')
            ->middleware('api')
            ->namespace($this->namespace) // need to add in Laravel 8
            ->group(base_path('routes/api.php'));

        Route::middleware('web')
            ->namespace($this->namespace) // need to add in Laravel 8
            ->group(base_path('routes/web.php'));
    });
}

然后你可以用like

Route::get('/users/{name?}' , [SayhelloController::class,'index']);
Route::resource('/users' , SayhelloController::class);

Route::get('/users', 'UserController@index');
 类似资料:
  • 我在通过MapStruct映射字段时遇到问题。 我有两门课。第一个域类“事件”,例如带有字段 第二类是“EventForm”。EventForm具有字段: 当我想更新现有事件时,会发生以下情况:1)我通过Id从数据库中获取现有事件 <代码>事件事件=事件服务。获取(id) 事件id=10000,lastUpdate=11213123123; 2) 我正在将字段从表单映射到域类 <代码>事件=映射器

  • 我最近开始研究Laravel,并安装了Laravel Framework 8.5。0 下面是我的控制器"UserController.php" 这是我的网站。路由中的php 当我尝试访问http://127.0.0.1:8000/users,它只是用下面的错误击中我 Illumb\Contracts\Container\BindingResolutionException 目标类[UserCont

  • 我的Laravel应用程序在。请理解,这是我第一次申请Laravel。 Illumb\Contracts\Container\BindingResolutionException目标类 [UserController]不存在。 当我尝试以下代码在web.php. 用户控制器文件: 然而,这行得通。 迁移已经运行,表已在数据库中成功创建。 环境: 完整的错误报告在Flare上共享

  • 我得到这个错误后,通常的安装,为我工作了多年。。。我真的不知道现在发生了什么变化。。有人能帮忙吗?

  • 使用php artisan route:list后,我在Laravel 8中遇到此错误: Illumb\Contracts\Container\BindingResolutionException目标类[Api\UserController]不存在。 我在App\Http\Controllers\Api中有一个控制器: 路线/api.php: 我是新来的

  • 我正在与Laravel 8合作开发我的项目。我制作了一个名为的控制器,并添加了这个方法来调用刀片: 在中,我添加了以下路由: 但是当我转到时,它说: lluminate\Contracts\Container\BindingResolutionException目标类[BackendController]不存在。 我不知道它为什么打印这个,因为控制器已经存在了!所以如果你知道怎么解决,请帮我...