我如何 return 根据用户在 Laravel 上的区域设置来自不同表的数据

How do I return data from different tables based on user's locale on Laravel

我有一个多语言网站,我想做的是显示来自不同表格的不同内容(lang_en、lang_es、lang_fr..等)

我试过这样的事情:[*1]:

[*1]:

// ContentController.php

  public function content_bylang($id)
  {
    $table = 'lang_'.Config::get('app.locale'); // app.locale=["en", "es", ..]
    $data = \DB::table($table)->where('id', $id)->get();

    return view('content', ['data' => $data]);
  }




当我这样做的时候,它起作用了,但我这样做的方式似乎并不那么有效。

有没有其他方法可以处理这种调用?

--

我不能做的事情: 我无法在 resources/lang/x.php 文件

中添加每个内容

如果您的许多 table 具有相同的列,可以使用 Model 并覆盖模型的构造函数

parent::__construct();
$this->table = 'lang_'.Config::get('app.locale');

所以下次在你的控制器中只需要调用模型而不需要额外的配置并将它传递给视图