我是 OOPS 新手,因此想澄清一些事情。我有下面的代码,它工作得很好。
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
class AdminController extends Controller
{
public function index()
{
echo "admin controller";
}
}
现在我不打算使用 use
关键字,因为它会被使用一次,也想进行实验,因此,我使用了下面的代码。
namespace App\Http\Controllers\Admin;
class AdminController extends App\Http\Controllers\Controller
{
public function index()
{
echo "admin controller";
}
}
现在,上面提到的没有 use
关键字的代码会抛出一个 fatal error 异常
。为什么会发生这种情况?理论上,我认为我正在做应该做的事情,那么为什么会出现异常呢?
最佳答案
您必须从全局命名空间导入它,下面的代码可以正常工作
namespace App\Http\Controllers\Admin;
class AdminController extends \App\Http\Controllers\Controller
{
public function index()
{
echo "admin controller";
}
}
使用来自全局命名空间的关键字导入类,但是
class AdminController extends App\Http\Controllers\Controller
它将导入相对于您当前命名空间(命名空间 App\Http\Controllers\Admin
)的父类,因此翻译路径将为:App\Http\Controllers\Admin\App\Http\Controllers\Controller
无效。
关于laravel - 在继承的情况下如何使用命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49643991/