【问题标题】:Getting Controller does not exist after moving my controller to sub folder in laravel 5将我的控制器移动到 laravel 5 中的子文件夹后,获取控制器不存在
【发布时间】:2016-11-27 05:14:02
【问题描述】:

我创建了一个资源完整路由,它指向App/Http/Controller/SeatController.php 中的一个 CRUD 控制器 我的路线在api.php

Route::resource('websites', 'SeatController');

我想将所有与Seat 相关的控制器放在一个目录中。我创建了一个名为 Seat 的目录,并将所有与 Seat 相关的控制器都移到了该目录中。它的路径是:App\Http\Controllers\Seat\SeatController

在更改之前它的路径是:App\Http\Controllers\SeatController

经过上述更改后,我将 Seat 目录名称添加到我的资源完整路径中,例如:

Route::resource('websites', 'Seat\SeatController');

但是当我到达这个控制器时,我收到以下错误消息:

Class App\Http\Controllers\Seat\SeatController does not exist

更新: 我的SeatController.php 文件是这样的:

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Seat;
use Auth;
use Validator;

class SeatController extends Controller
{

当我将其更改为:

namespace App\Http\Controllers\Seat;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Seat;
use Auth;
use Validator;

class SeatController extends Controller
{

我收到此错误消息:

SeatController.php line 12:
Class 'App\Http\Controllers\Seat\Controller' not found

任何人都知道如何解决这个问题?

【问题讨论】:

  • 将控制器的命名空间更新为命名空间 App\Http\Controllers\Seat\SeatController;
  • 您应该在SeatController 中更改您的model 调用。它应该可以工作。并检查命名空间是否正常。
  • @NazmulHasan 当我更新他们的命名空间时,我收到了这个错误信息:SeatController.php 第 13 行:找不到 Class 'App\Http\Controllers\Seat\SeatController\Controller'
  • 第 13 行是:类 SeatController 扩展控制器
  • 对不起,我弄错了。命名空间将是 App\Http\Controllers\Seat;

标签: php laravel-5 routes resources controllers


【解决方案1】:

类 App\Http\Controllers\Seat\SeatController 不存在

这意味着控制器无法找到SeatController 类。您应该检查以下步骤。希望这对你有用。

首先您必须检查您的SeatController 文件中的model 调用是否正常。然后检查SeatController 中的命名空间是否正常。尝试如下所示:

namespace App\Http\Controllers\Seat;

use App\Seat; \\type your Model name instead of Seat

【讨论】:

  • @Chnochol Mahmud 感谢您的响应,但应该将此命名空间放在我的 api.php 或我的控制器中吗?我的型号名称是 App\Seat 中的 Seat;
  • 你应该编辑你的controller命名空间,特别是你应该编辑SeatController。您的路线文件看起来不错。或者在您的问题中添加您的SeatController 标题代码,以便我可以彻底回答。
  • 我已经按照您所说的做了,但是如果您查看上面的 cmets,我会收到另一条错误消息。 SeatController.php 第 13 行:找不到类 'App\Http\Controllers\Seat\SeatController\Controller'
  • 你错过了use App\Http\Controllers\Controller;在你的控制器文件中添加这个。
  • 它解决了我的问题
猜你喜欢
  • 1970-01-01
  • 2019-01-18
  • 2014-11-24
  • 1970-01-01
  • 2015-05-31
  • 2021-08-25
  • 2019-12-16
  • 2015-09-14
  • 2016-04-06
相关资源
最近更新 更多