2017-02-15 203 views
0

我是Laravel的新成員,並試圖使所有視圖的頭部共享內容的變量,但問題是獲取的語言與我的空值爲null提供者(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(); 我收到了我用過的兩種語言的所有產品。 我需要使用where條件where('language',$ lang)只獲取當前lang的語言,但$ lang變量返回null,即使在使用config \ Config :: get('languages')之後; –

+0

你的配置中是否有'languages'? –

回答

0

有與片段的幾個問題:

  • share()方法只需要兩個參數,而不是重複鍵,值配對
  • 價值預期languageSession::get("language", $locale)的結果,但實際上放置的是字符串'\ Session :: get(「language」,$ locale)'。

基於這一點,你需要重寫如下

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