Как динамически изменить имя таблицы $ в модели Laravel? - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь извлечь данные из таблицы, которая продолжает изменять свой суффикс в зависимости от даты. например, Report201906 за июнь, Report201907 за июль.

Итак, я хочу подключиться к таблице с суффиксом текущей даты. например, текущий месяц июль. Поэтому я хочу подключиться к Report201907

Я пытался:

protected $connection = 'mysql2';
protected $primaryKey = 'id';
protected $current_month = date('Ym',strtotime(date('Y-m')." -1 month"));
protected $table = 'Report'.$current_month; //Hoping to connect to Report201907

но я получаю ошибку Постоянное выражение содержит недопустимые операции. Я довольно новичок в laravel и PHP. Ваша помощь будет высоко оценена.

1 Ответ

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

Вам не нужен laravel Eloquent или Model для того, что вам нужно. Для запросов RAW SQL просто use laravel DB фасад в вашем контроллере.

используйте фасад в вашем контроллере как:

use Illuminate\Support\Facades\DB;

public function index() {

   $current_month = date('Ym',strtotime(date('Y-m')." -1 month"));

   $table = 'Report'.$current_month;    // btw this returns 'Report201906' not 'Report201907'

   $records = DB::select('select * from '.$table);

   return $records;

}

для получения подробной информации, пожалуйста, официальная документация: https://laravel.com/docs/5.8/database

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...