Я новичок в 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);
}
Есть несколько проблем с фрагментом:
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);
Других решений пока нет …