在数据库中查询后,使用PHP在Laravel中正确获取数据

时间:2015-10-08 10:18:55

标签: php mysql laravel laravel-4

所以我试图根据用户的语言在HTML中选择一个表单来显示文本,我使用的是Laravel,我有一个简单的方法:

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

之后,我在我选择的表单中使用$ dropdown,它显示文本以及$ name中的任何内容。它没有&#34;得到&#34; texts.php中的文字。但是,如果我更改了文字。&#39;。$ name to&#39; texts.yeah&#39; (例如)它正确填充选择。

我尝试了eval()exec()等等,我不知道还能做些什么。也许我没有正确使用它们。

任何提示或建议?提前谢谢。

1 个答案:

答案 0 :(得分: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)