Php 无法将Illumb\Routing\Controller用作控制器,因为该名称已在使用中
我一直在学习使用Laravel,观看Larcasts和使用Docs,我遇到了一个教训,其中描述了雄辩,但我被错误缠住了:Php 无法将Illumb\Routing\Controller用作控制器,因为该名称已在使用中,php,laravel,laravel-5,Php,Laravel,Laravel 5,我一直在学习使用Laravel,观看Larcasts和使用Docs,我遇到了一个教训,其中描述了雄辩,但我被错误缠住了: at HandleExceptions->fatalExceptionFromError( array( 'type' => '64', 'message' => 'Cannot use Illuminate\Routing\Controller as Controller because the name is already in u
at HandleExceptions->fatalExceptionFromError(
array(
'type' => '64',
'message' => 'Cannot use Illuminate\Routing\Controller as Controller because the name is already in use'
)
)
我很困惑,现在已经完全复制了提供的示例,但我仍然得到了错误。我使用的是Laravel5,所以我不知道是否有一些未记录的更改,或者我只是做错了什么。我还没有在谷歌搜索中找到任何能解决这个问题的相关信息,所以我希望这里的人能够提供帮助。以下是产生错误的代码:
<?php namespace App\Http\Controllers;
use Illuminate\Routing\Controller;
use App\VarName;
class VarController extends Controller {
public function Var()
{
$Variable = VarName::get();
dd($Variable);
}
}
使用照明\路由\控制器代码>语句失败,因为App\Http\Controllers
命名空间中已存在Controller
类
要解决眼前的问题,可以在use语句中更改命名空间快捷方式:
use Illuminate\Routing\Controller as BaseController;
但是,针对您的特定问题的解决方案是,您可能只想删除use-illumb\Routing\Controller代码>语句
在Laravel 5中,App\Http\Controllers\Controller
类已经扩展了illumb\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
}
或
这是因为存在重复项
解决方案是从导入中删除副本
请参阅随附的示例您是否定义了App\Http\Controllers\Controller类?有一个默认的控制器类,我没有创建它,但它就在那里。这与我遇到的问题有关吗?谢谢您的回答,因此我放弃了尝试Laravel 5,决定等到它是一个稳定的版本,并且有关于它与4的区别的具体文档。一直在使用4没有问题,我想我仍然会等到5是稳定的,但很高兴知道未来的参考!这似乎是laravel 5中的:generate
中的一个bug
// extend the existing App\Http\Controllers\Controller class
namespace App\Http\Controllers;
class VarController extends Controller {
// snip
}