如何从laravel 5中的控制器访问我的lang文件

时间:2015-07-30 16:15:26

标签: controller localization laravel-5

从Laravel 4转换到Laravel 5.尝试在控制器中访问Lang文件,如下所示:

$var = Lang::get('directory/index.str1');

这给了我:Class' App \ Http \ Controllers \ Lang'未找到。然而

{{Lang::get('directory/index.str1');}}

在视图中正常工作

2 个答案:

答案 0 :(得分:7)

您缺少 Lang 类的 use 语句,PHP正在当前命名空间中查找它,这就是您看到 App \ Http \ Controllers的原因\ Lang 中的错误消息。

它在视图中工作,因为视图文件在全局命名空间中执行,其中 Lang 外观存在。

为了使您的代码能够正常工作,请执行以下操作之一:

  1. Lang

    使用完全限定的类名
    $var = \Lang::get('directory/index.str1');
    
  2. 在控制器顶部添加use语句

    <?php namespace App\Http\Controllers;
    use Lang;
    

答案 1 :(得分:1)

您也可以使用__帮助器(适用于Laravel 5.5、5.6和5.7 ...不确定其他版本)。 e。 g如果您的字符串数组存储在lang目录内名为messages.php的文件中,则要获取带有键myString的字符串,请在控制器中使用以下命令:

__('messages.myString');

在刀片模板中,您将使用:

@lang('messages.myString')