pro*_*ist 7 localization controller laravel-5
从Laravel 4转换到Laravel 5.尝试在控制器中访问Lang文件,如下所示:
$var = Lang::get('directory/index.str1');
Run Code Online (Sandbox Code Playgroud)
这给了我:没有找到Class'App\Http\Controllers\Lang'.然而
{{Lang::get('directory/index.str1');}}
Run Code Online (Sandbox Code Playgroud)
在视图中工作正常
Ben*_*oki 10
您也可以使用 __ 助手(适用于 Laravel 5.5、5.6 和 5.7 ......不确定其他版本)。e. g 如果您的字符串数组存储在 lang 目录中名为 messages.php 的文件中,要获取带有键 myString 的字符串,请在控制器中使用以下内容:
__('messages.myString');
Run Code Online (Sandbox Code Playgroud)
在刀片模板中,您将使用:
@lang('messages.myString')
Run Code Online (Sandbox Code Playgroud)
您缺少Lang类的use语句,PHP正在当前命名空间中查找它,这就是您在错误消息中看到App\Http\Controllers\Lang的原因.
它在视图中工作,因为视图文件在全局命名空间中执行,其中存在Lang外观.
为了使您的代码能够正常工作,请执行以下操作之一:
使用Lang的完全限定类名
$var = \Lang::get('directory/index.str1');
Run Code Online (Sandbox Code Playgroud)在控制器顶部添加use语句
<?php namespace App\Http\Controllers;
use Lang;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
12624 次 |
| 最近记录: |