【问题标题】:Project\taskApp\vendor\laravel\framework\src\Illuminate\Container\Container.php:879 in lavarelProject\\task App\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php:879 in laravel
【发布时间】:2022-11-28 01:39:47
【问题描述】:

控制器中的代码

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class Testcontrol extends Controller
{
    public function indexabout()
    {
        return view ('about');
    }
    public function indexcontact()
    {
        return view ('contact');
    }
}

路线中的代码

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Testcontrol;




Route::get('/', function () {
    return view('welcome');
});

Route::get('/about','Testcontrol@indexabout');
Route::get('/contact','Testcontrol@indexcontact');


但最后它显示了错误 **项目\taskApp\vendor\laravel\framework\src\Illuminate\Container\Container.php:879 照亮\合同\容器\BindingResolutionException 目标类 [Testcontrol] 不存在。

【问题讨论】:

  • 这不是错误,它是一个文件路径,后面有一个行号。
  • Illuminate\Contracts\Container\BindingResolutionException 目标类 [Testcontrol] 不存在。
  • 请使用“编辑”链接而不是 cmets 来改进问题。

标签: php laravel


【解决方案1】:

在 Laravel 8+ 中,您没有控制器的默认命名空间,因此 'TestController@indexcontact' 将不起作用,除非您在 RouteServiceProvider 中设置命名空间。但是现在做路由的标准方法是这样的:

Route::get('/contact',[Testcontrol::class, 'indexcontact']);

并且不要忘记您已经拥有的 use 语句:use AppHttpControllersTestcontrol;

更改的发行说明: https://laravel.com/docs/8.x/releases#routing-namespace-updates

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 2019-10-28
    • 2016-08-19
    • 2016-07-04
    • 2020-11-01
    • 2019-11-01
    • 2017-11-27
    • 1970-01-01
    • 2017-05-30
    相关资源
    最近更新 更多