Как вернуть данные из разных таблиц в зависимости от локали пользователя на Laravel - PullRequest
0 голосов
/ 10 июля 2019

У меня многоязычный веб-сайт, и я хочу отображать различный контент из разных таблиц (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

1 Ответ

0 голосов
/ 10 июля 2019

, если в вашей многостраничной таблице один и тот же столбец, можно использовать Модель и переопределить конструктор Модели

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

так что в следующий раз в вашем контроллере нужно только вызвать модель без дополнительной настройки и передать ее в представление

...