我关注these instructions并为我的默认布局创建了一个视图编辑器。
我的 DefaultComposer.php 位于app / Http / ViewComposers下,因此下面使用了命名空间:
<?php namespace App\Http\ViewComposers;
use Illuminate\Contracts\View\View;
class DefaultComposer {
public function compose(View $view) {
$data['language'] = LanguageController::getDefaultLanguage();
$view->with($data);
}
}
?>
现在,当我加载页面时,出现以下错误:
未找到类'App \ Http \ ViewComposers \ LanguageController'
这是因为 LanguageController.php 位于app / Http / Controllers下,这是一个不同的命名空间。
如何在LanguageController
中使用DefaultComposer
课程?
更新
使用此声明:
use App\Http\Controllers\LanguageController as LanguageController;
抛出:类'App \ Http \ Controllers \ LanguageController'找不到。我很困惑。
答案 0 :(得分:1)
我想出来了。由于我的应用程序中的控制器位于全局命名空间中,所以我需要做的就是在类名前面添加一个反斜杠。
所以不要这样:
$data['language'] = LanguageController::getDefaultLanguage();
我这样做了:
$data['language'] = \LanguageController::getDefaultLanguage();