我如何 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');
所以下次在你的控制器中只需要调用模型而不需要额外的配置并将它传递给视图
我有一个多语言网站,我想做的是显示来自不同表格的不同内容(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');
所以下次在你的控制器中只需要调用模型而不需要额外的配置并将它传递给视图