我正在使用Laravel 6.0,我尝试使用artisan route:list
列出我的所有路线,但失败并返回:
照明\合同\容器\BindingResolutionExc0019:目标类[App\Http\Controller\SessionsController]不存在。
at/home/vagrant/code/vendor/laravel/framework/src/illumb/Container/Container.php:806 802 | 803 | try{804 |$reflector=新的ReflectionClass($concrete);805 |}catch(ReflectionException$e){
异常跟踪:
1照明\基金会\控制台\RouteListCommand::照明\基金会\控制台{闭包}(对象(照明\路由\路由))[内部]: 0
2 ReflectionException::(“类App\Http\Controllers\sessioncontroller不存在”)/home/vagrant/code/vendor/laravel/framework/src/light/Container/Container.php:804
3 ReflectionClass::u构造(“App\Http\Controllers\sessioncontroller”)/home/vagrant/code/vendor/laravel/framework/src/illighte/Container/Container.php:804
到目前为止,我只有一个非常简单的web.php路由文件:
Route::get('/', function () {
return view('index');
});
Route::prefix('app')->group(function () {
// Registration routes
Route::get('registration/create', 'RegistrationController@create')->name('app-registration-form');
});
// Templates
Route::get('templates/ubold/{any}', 'UboldController@index');
知道我如何调试这个问题吗?
运行此命令
php artisan config:cache
对于那些对illumb\Contracts\Container\BindingResolutionException:Target类有类似问题的人[
composer dump-autoload
我正在从Laravel 7升级到Laravel 8(Laravel 8仍在开发中几天),也有这个问题。
解决方案是在路由中使用控制器的类名表示:
所以在web.php而不是
Route::get('registration/create', 'RegistrationController@create')
现在是:
use App\Http\Controllers\RegistrationController;
Route::get('/', [RegistrationController::class, 'create']);
或作为字符串语法(完整命名空间控制器名称):
Route::get('/', 'App\Http\Controllers\RegistrationController@create');
由于只有通过创建全新的laravel项目升级应用程序时才会出现此问题,因此您也可以将默认名称空间添加到RouteServiceProvider:
app/Providers/RouteServiceProvider.php
class RouteServiceProvider extends ServiceProvider
{
/* ... */
/** ADD THIS PROPERTY
* If specified, this namespace is automatically applied to your controller routes.
*
* In addition, it is set as the URL generator's root namespace.
*
* @var string
*/
protected $namespace = 'App\Http\Controllers';
/**
* Define your route model bindings, pattern filters, etc.
*
* @return void
*/
public function boot()
{
$this->configureRateLimiting();
$this->routes(function () {
Route::middleware('web')
->namespace($this->namespace) // <-- ADD THIS
->group(base_path('routes/web.php'));
Route::prefix('api')
->middleware('api')
->namespace($this->namespace) // <-- ADD THIS
->group(base_path('routes/api.php'));
});
}
/* ... /*
}
另请参阅https://laravel.com/docs/8.x/routing#basic-routing或https://laravel.com/docs/8.x/upgrade(搜索路由)。
我已经设置Laravel 6项目,但由于某种原因,当php工匠路由:列表返回目标类[App\Sys\Http\Controller\Api\LocationController]不存在。我是新来的Laravel,我不明白为什么控制器不工作。有人能帮帮我吗? 这是我的代码: 位置控制器。php 我的路由文件: api.php
当我通过命令“php artisan make:controller Admin\ControllerLanguages”创建名为“Admin”的控制器内部文件夹时 并发送出现此错误的页面: 方法App\Http\Controllers\LanguagesController::index不存在。错误的方法调用是指App\Http\Controllers\LanguagesController::
我得到这个错误: Illumb\Contracts\Container\BindingResolutionException目标类[App\Http\Controllers\UserManagementController]不存在。 我想问题出在我的web.php路径上:
我正在尝试在我的注册控制器中注册多用户,并使用以下代码进行检查。但它告诉我一个错误: 方法App\Http\Controllers\Auth\RegisterController::validator不存在。
我有一个类调用VSE,其中有50多个函数。 我想列出所有这些函数。 我试过了 我一直得到 我做错了什么?
我今天去拉拉维尔8号兜风,但是似乎路线立面再也找不到控制器了。 路线给了我以下错误: 目标类[HomeController]不存在。 我在运行时遇到了类似的错误: