Получение языка локали в классе провайдера в Laravel

Я новичок в Laravel и пытаюсь сделать переменную содержимого в заголовке доступной для всех представлений, но проблема в том, чтобы получить язык, который поддерживает меня со значением NULL в классе провайдера (AppServiceProvider).

Вот мой код:

public function boot( )
{
// $language=App::setLocale($locale);
$locale = App::getLocale();
\Session::put('language', 'en');
\Config::get('app.locale');
\Config::get('languages') ;
\Session::get('languages', 'en');
$lang = Session::get ('locale');

$products = ProductsTranslation::join('products', 'products.id', '=', 'products_translations.product_id')->where('language',$lang) ->get();

$postId   = Post::get();
view()->share('products', $products,'language',' \Session::get("language", $locale )','postId',$postId);
}

0

Решение

Есть несколько проблем с фрагментом:

  • share() метод принимает только два аргумента вместо повторяющихся ключей, пары значений
  • Значение, предназначенное для language является результатом Session::get("language", $locale), но на самом деле ставится строка ‘\ Session :: get («language», $ locale)’.

Исходя из этого, вам нужно будет переписать как

view()->share('products', $products);
view()->share('language', Session::get('language', $locale));
view()->share('postId', $postId);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]