【问题标题】:Laravel 5.5: Controller does not existLaravel 5.5:控制器不存在
【发布时间】:2017-10-17 04:20:59
【问题描述】:

来自 CodeIgniter,我决定是时候做点新的了,于是选择了 Laravel。我喜欢框架的语法以及它的简洁程度,但是,我对看似复杂的简单事物感到不知所措。我有一个控制器并想链接到所述控制器中的一个功能。无论我做什么,我都会不断收到此错误:

   ReflectionException in Route.php line 280:
Class App\Http\Controllers\TasksController does not exist

我已经用谷歌搜索过这个问题,但我似乎无法弄清楚。似乎我做对了一切,但话说回来,我对这个框架完全陌生,所以我真的不知道。我有一个命名空间、一条路线和所有这些东西。无论如何,这是我的代码:

链接

<a class="nav-link" href="<?= url('tasks') ?>">Tasks</a>

我在 routes.php 中的路线

Route::resource('tasks', 'TasksController');

TasksController.php

<?php

namespace App\Http\Controllers\Controller;

use App\User;
use App\Http\Controllers\Controller;

class TasksController extends Controller
{
    public function index()
    {
        $tasks = DB::table('tasks')->get();
        return view('tasks', ['tasks' => $tasks]);
    }
}

感谢您的任何回答,如果您需要更多信息,请说出来。

【问题讨论】:

  • 尝试Route::resource('tasks', 'Controller\TasksController');,因为您的完整类命名空间/名称是App\Http\Controllers\Controller\TasksController。或者从你的命名空间中删除额外的Controller
  • 谢谢!删除额外的命名空间就可以了。我知道我在某个地方搞错了...... :)

标签: php laravel-5.5


【解决方案1】:

鉴于您使用的是默认 Laravel 安装,控制器的当前目录不存在。

尝试改变

<?php

namespace App\Http\Controllers\Controller;

<?php

namespace App\Http\Controllers;

在您的 TasksController.php 文件中

【讨论】:

  • 好的,谢谢!艾因伯已经提出了这个建议。不敢相信事情就这么简单。我想这就是深夜编程对你的影响:)
【解决方案2】:

您的命名空间(在控制器文件中)是App\Http\Controllers\Controller,应该是App\Http\Controllers

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2019-03-26
    • 2014-11-11
    • 2018-03-05
    • 2018-07-15
    相关资源
    最近更新 更多