2017-02-15 25 views
0

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

Вот мой код:

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

Вы можете лучше описать вашу проблему? Что вы ожидали увидеть? И что вы видели вместо этого? –

+0

Я пытаюсь использовать переменную продукта на моем нижнем колонтитуле (разделяемый для каждого вида). Если я использовал этот запрос: $ products = ProductsTranslation :: join ('products', 'products.id', '=', 'products_translations.product_id') -> get(); Я получаю все продукты на обоих языках, которые я использовал. Мне нужно использовать условия где ('language', $ lang), чтобы получить только язык для текущего lang, но переменная $ lang возвращается с нулевым значением, даже после использования config \ Config :: get ('languages'). ; –

+0

У вас есть «языки» в вашем конфиге? –

ответ

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