【问题标题】:Laravel 5: Controller not found in /Http/Controllers despite it being thereLaravel 5:在 /Http/Controllers 中找不到控制器,尽管它在那里
【发布时间】:2018-03-01 10:59:17
【问题描述】:

访问从 LoginController 调用方法的路由时出现此错误:

 ReflectionException
Class App\Http\Controllers\LoginController does not exist

问题是文件“LoginController.php”在目录“App\Http\Controllers”中,但 laravel 拒绝看到它。我被难住了!

我的控制器文件:

use Illuminate\Http\Request;
use DB;
use Session;
use App\Http\Controllers\Controller;
namespace App\Http\Controllers;

class LoginController extends Controller
{
    public function loginAuthentication(Request $request) {
      // method code here
    }
}

我的路线文件:

<?php
    Route::get('/', function() {
            session('userLevelKey', '1');
            return view('layout');
    });

    Route::post('/', 'LoginController@loginAuthentication');
    // some more routes

编辑 1:将命名空间添加到控制器文件。

【问题讨论】:

  • 你能把你的 LoginController 的命名空间添加到问题中吗?
  • 如果没有命名空间添加它namespace App\Http\Controllers; :)
  • 我现在补充一下。编辑:仍然出现同样的错误:/

标签: php laravel laravel-5


【解决方案1】:

将控制器文件更改为

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use DB;
use Session;
use App\Http\Controllers\Controller;

class LoginController extends Controller
{
    public function loginAuthentication(Request $request) {
      // method code here
    }
}

【讨论】:

  • 我试过了,但不幸的是出现了同样的错误。
  • 如果你使用 'post' 方法不要忘记传递 csrf 令牌,如果你没有使用 csrf 令牌,请在 'Kernel.php' 中注释它 ....
  • 还要检查“重写模式”是否打开,以及是否在 /etc/apache2/apache2.conf 中设置了“允许覆盖所有”。并且还使用命令'composer dump-autoload'、'php artisan cache:clear'、'php artisan config:clear'清除缓存
【解决方案2】:

添加控件路径以路由页面 App\Http\Controllers

【讨论】:

    猜你喜欢
    • 2016-01-11
    • 2021-07-12
    • 1970-01-01
    • 2015-07-12
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    相关资源
    最近更新 更多