在Laravel中间件中设置全局变量/文本方向

时间:2018-05-20 22:12:19

标签: laravel

我有一个从数据库中读取语言设置的中间件,并相应地应用设置应用程序区域设置:

    @if ($RTL)
    {{ Html::style('css/rtl/app-rtl.css') }}
    @else 
    {{ Html::style('css/app.css') }}
    @endif

我还想设置文本方向(rtl或ltr),以便我的刀片模板可以使用它来加载必要的css文件。

我可以在控制器中轻松完成,但我不希望在每个控制器中重复它并将其传递给我的应用程序中每个页面的视图。有没有办法设置全局变量或类似的东西,所以我可以在我的刀片模板中执行此操作:

{{1}}

2 个答案:

答案 0 :(得分:1)

您可以使用视图外观,您可以阅读有关here的更多信息。

这允许您直接为视图准备任何数据并使其可用。

<?php

use Illuminate\Support\Facades\View;

public function handle($request, Closure $next)
{

    $lang = SystemSetting::find('System Language');
    \App::setLocale($lang->value);

    View::share('rtl', true);

    return $next($request);
}

但我建议考虑闪烁这个into the session.

答案 1 :(得分:0)

您可以通过翻译进行更改

$srcFiles = "$fooDir/$barDir/*"

ar 文件中的接口:

-Force

en 文件中的接口:

<html lang="{{config('app.locale')}}" dir="{{@trans('interface.dir')}}">