【问题标题】:Method App\Http\Controllers\LanguagesController::index does not exist方法 App\Http\Controllers\LanguagesController::index 不存在
【发布时间】:2021-04-04 18:35:47
【问题描述】:

拉拉维尔

当我通过命令创建一个名为“Admin”的 controller insid 文件夹时 "php artisan make:controller Admin\ControllerLanguages"

和路由页面出现这个错误:

方法 App\Http\Controllers\LanguagesController::index 不存在。 错误的方法调用 你的意思是 App\Http\Controllers\LanguagesController::validate() ?

但是当我通过命令将 controller 通常放在默认文件夹中时: "php artisan make:controller LanguagesController"

路由运行并出现页面,我希望在“Admin”文件夹中创建页面时出现页面,我尝试了很多方法,但无济于事。

【问题讨论】:

  • 嘿。看起来你在第一部分写错了:ControllerLanguages。应该是 LanguagesController

标签: php laravel frameworks


【解决方案1】:

你应该为路由组声明命名空间

Route::prefix('languages')
    ->namespace('App\Http\Controllers\Admin')
    ->group(function() {
        Route::get('/', 'LanguagesController@index')->name('admin.languages');
        //All other Routes for languages defined here
        //LanguagesController is at app/Http/Controllers/Admin folder
    });

或者您可以通过use 语句导入命名空间,如顶部

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Admin\LanguagesController;

Route::prefix('languages')
    ->group(function(){
        Route::get('/', [LanguagesController::class, 'index'])->name('admin.languages');

        //Other languages routes here
    });

【讨论】:

  • 我尝试了两次但是两种情况的结果:
  • Illuminate\Contracts\Container\BindingResolutionException 目标类 [App\Http\Controllers\App\Http\Controllers\Admin\LanguagesController] 不存在。
  • 使用哪个选项出现错误 - 第一个还是第二个?
  • 第一个目标类 [App\Http\Controllers\App\Http\Controllers\Admin\LanguagesController] 不存在。第二个是的页面运行非常感谢
猜你喜欢
  • 2018-05-25
  • 1970-01-01
  • 2018-12-14
  • 2020-05-08
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-15
  • 2023-03-17
相关资源
最近更新 更多