我按照这些说明为我的默认布局创建了一个视图编辑器。
我的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下,这是一个不同的命名空间。
如何在DefaultComposer
中使用LanguageController
类?
更新:
使用此声明:
use App'Http'Controllers'LanguageController as LanguageController;
throws:未找到类"App''Http''Controllers''LanguageController"。我很困惑。
我想明白了。由于我的应用程序中的控制器位于全局命名空间中,所以我所需要做的就是在类名前面添加一个反斜杠。
因此,取而代之的是:
$data['language'] = LanguageController::getDefaultLanguage();
我做到了:
$data['language'] = 'LanguageController::getDefaultLanguage();