根据Laravel中的语言环境从数据库中选择数据

时间:2019-01-14 12:09:03

标签: laravel

我在数据库中存储了帖子,如下所示,我想根据语言环境获取记录。

id       title-ar      title-en       body-ar     body-en   
---------------------------------------------------------
1        خبر جديد      new post      مرحبا      hello      
2        اخر الاخبار    last news    مرحبا       hello

假设我要加载阿拉伯或英语语言的数据,该如何实现?

2 个答案:

答案 0 :(得分:1)

这里也有新的laravel,所以如果是我,我会做2个查询(而且我知道可能有更好的方法,但是我会这样做):

$englishPosts = Table::all()->select('title-en', 'body-en'); 
$arabicPosts = Table::all()->select('title-ar', 'body-ar');

然后将它们返回到视图(叶片)或vue / react组件并以这种方式显示。

答案 1 :(得分:0)

我有 getLanguageCode()方法,该方法会向我返回en,ar,fr或我要用来与列名一起使用的任何选定语言名称。喜欢

DB::table('faqs')->selectRaw('title_' . getLanguageCode() . ' as title, description_' . getLanguageCode() . ' as description')->where('is_active', 1)->orderBy('id', 'DESC')->limit(4)->get();

这是 getLanguageCode()进入我的助手文件的代码,我可以直接调用它而无需任何引用。

function getLanguageCode() {
    return LaravelLocalization::getCurrentLocale();
}