Установить глобальную переменную / направление текста в промежуточном программном обеспечении Laravel

У меня есть промежуточное ПО, которое считывает языковые настройки из базы данных и соответственно устанавливает языковой стандарт приложения:

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

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

    return $next($request);
}

Я также хотел бы установить направление текста (rtl или ltr), чтобы оно было доступно для моего шаблона лезвия для загрузки необходимых файлов css.

Я могу легко сделать это в контроллере, но я не хочу повторять это в каждом контроллере и передавать его представлению для каждой страницы в моем приложении. Есть ли способ установить глобальную переменную или что-то подобное, чтобы я мог сделать это в моем шаблоне лезвия:

    @if ($RTL)
    {{ Html::style('css/rtl/app-rtl.css') }}
    @else 
    {{ Html::style('css/app.css') }}
    @endif
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
0
319
2

Ответы 2

Вы можете использовать фасад просмотра, о котором вы можете узнать больше о здесь.

Это позволяет вам напрямую подготовить любые данные для представлений и сделать их доступными там.

<?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);
}

Но я бы посоветовал изучить перепрошивку этого в сеанс.

Но если я прошу его в сеанс, разве мне все равно не придется передавать его из контроллера в представление? Я отправляю сообщения о состоянии сеансам и все равно передаю их от контроллера.

Patriot 21.05.2018 00:38

@ Патриот Ах да, да. Поскольку вы используете лезвие, вы также можете просто получить значение из фасада сеанса в представлении.

Nicklas Kevin Frank 21.05.2018 00:41

Вы можете изменить с переводом

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

интерфейс в файле ar:

 return [
 //add this line in ar file
'dir' =>'rtl', 
]

интерфейс в файле en:

  return [
//add this line in en file
    'dir' =>'ltr',
    ]

Другие вопросы по теме