无法使用Illuminate\Routing\Controller作为Controller,因为该名称已被使用

Mar*_*ick 7 php laravel laravel-5

我一直在学习使用Laravel,观看Larcast并使用Docs,我遇到了一个Eloquent被描述的课程,但我遇到了错误:

at HandleExceptions->fatalExceptionFromError(
  array(
    'type' => '64',
    'message' => 'Cannot use Illuminate\Routing\Controller as Controller because the name is already in use'
  )
)
Run Code Online (Sandbox Code Playgroud)

我很困惑,现在已经复制了提供的示例,但我仍然得到错误.我正在使用Laravel 5,因此我不知道是否存在一些无证的更改或者我是否只是做错了什么.我没有找到解决问题的谷歌搜索中的任何相关内容,所以我希望有人可以提供帮助.以下是产生错误的代码:

<?php namespace App\Http\Controllers;

use Illuminate\Routing\Controller;

use App\VarName;

class VarController extends Controller {

    public function Var()
    {
        $Variable = VarName::get();

        dd($Variable);
    }
}
Run Code Online (Sandbox Code Playgroud)

根据文档,这应该工作,并且在我观看的视频中,它确实有用..我错过了什么?

我尝试删除Controller类,因为它似乎是导致已经使用的错误,它破坏了一切,重新安装并尝试使用Controller,因为它扩展了雄辩的模型,但现在它说:

Pluralizer.php第258行中的ErrorException:call_user_func()期望参数1是有效的回调,mb_strtolower找不到函数或函数名无效

这超出了我对Laravel内部工作的理解,我被卡住了,我不明白这个问题,根据文档我没有看到我的代码有什么问题,这看起来就像这么简单的一步.我想要做的就是从数据库中检索信息,发生了什么?

在此先感谢您的帮助!

pat*_*cus 20

use Illuminate\Routing\Controller;语句失败,因为命名空间中已经有一个ControllerApp\Http\Controllers.

要解决紧急问题,可以在use语句上更改命名空间快捷方式:

use Illuminate\Routing\Controller as BaseController;
Run Code Online (Sandbox Code Playgroud)

但是,针对您的特定问题的解决方案是您可能只想use Illuminate\Routing\Controller;完全删除该语句.

在Laravel 5中,App\Http\Controllers\Controller该类已经扩展了Illuminate\Routing\Controller该类.目的是所有新控制器都应该扩展App\Http\Controllers\Controller该类.例如,看一下默认值,App\Http\Controllers\HomeController或者App\Http\Controllers\WelcomeController同时扩展App\Http\Controllers\Controller类.

总之,您的两个选择是:

// rename the class in the use statement
namespace App\Http\Controllers;
use Illuminate\Routing\Controller as BaseController;

// note the name of the class being extended
class VarController extends BaseController {
    // snip
}
Run Code Online (Sandbox Code Playgroud)

要么

// extend the existing App\Http\Controllers\Controller class
namespace App\Http\Controllers;

class VarController extends Controller {
    // snip
}
Run Code Online (Sandbox Code Playgroud)