Laravel 5:在视图编辑器中使用控制器-找不到控制器类


Laravel 5: Using a controller in a view composer - controller class not found

我按照这些说明为我的默认布局创建了一个视图编辑器。

我的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();