2015-10-08 42 views
0

因此,我試圖根據用戶的語言在HTML中選擇一個表單中顯示文本,我使用Laravel,並且我有一個簡單的方法來執行此操作:在數據庫中查詢後在Laravel中使用PHP正確獲取數據

Lang::get('texts.whatever'); 

這將轉到texts.php文件,該文件爲正確的文本更改「任何」。

再說,我有一個關聯數組,像這樣:$dropdown = ['1'=>'France','2'=>'Germany', '3'=>'Greece', '4'=>'Portugal', '5'=>'Spain', '6'=>'United Kingdom'];

而且這樣的事情:

@foreach($dropdown as $id=>$name)   
<?php 
    $newArray[$id]=Lang::get('texts.'.$name); 
?> 
@endforeach 

<?php 
    $dropdown = $newArray; 
?> 

在那之後,我用$下拉菜單中我選擇的形式,它顯示的文本加什麼它是在$名稱。它不會「獲取」texts.php中的文本。但是,如果我將'文本。'。$ name更改爲'texts.yeah'(例如),它會正確填充選擇內容。

我試過eval(),exec()等,我不知道還有什麼要做。也許我沒有正確使用它們。

任何提示或建議?先謝謝你。

回答

1

你的texts.php文件是怎麼看的?

我做了一個小測試案例,它爲我工作得很好

郎/ EN/countries.php

return array(
    'France' => 'France in english', 
    'Germany'  => 'Germany in english', 
    'Spain'  => 'Spain in english', 
); 

routes.php文件

Route::get('countries', function() 
{ 
    $countries = [1 => 'France', 2 =>'Germany', 3 => 'Spain']; 
    $dropdown = []; 

    foreach ($countries as $key => $value) { 
     $dropdown[$key] = Lang::get('countries.'.$value); 
    } 
    dd($dropdown); 
}); 

回報:

array (size=3) 
    1 => string 'France in english' (length=17) 
    2 => string 'Germany in english' (length=18) 
    3 => string 'Spain in english' (length=16) 

更簡單routes.php文件例如

Route::get('countries', function() 
{ 
    $countries = Lang::get('countries'); 
    $dropdown = [1 => $countries['France'], 2 => $countries['Germany'], 3 => $countries['Spain']]; 
    dd($dropdown); 
}); 

回報:

array (size=3) 
    1 => string 'France in english' (length=17) 
    2 => string 'Germany in english' (length=18) 
    3 => string 'Spain in english' (length=16) 
+0

我有在網站上的所有文本文件,而不僅僅是一個 'countries.php' 文件,但似乎正常工作。也許我應該給它一個機會。 – Zariweya

+0

@Zariweya:你可以在你的問題中添加你的'texts.php'文件嗎?也許在那個文件中有些不同。 –

+0

或者,如果它真的很大,只是與國家的一個片段。 –

相關問題