#php #laravel
#php #laravel
Вопрос:
Я не уверен, как это сделать. У меня есть рабочая таблица, в которой я обрабатываю данные, чтобы они соответствовали остальной части нашей базы данных, и опубликованная таблица, в которую я хочу перенести окончательные данные. Хотя truncate()
выполняется и очищается Report
таблица, Prescription
таблица остается пустой после этого запуска. Это какая-то красноречивая проблема, которую я не понимаю?
Вот мой код:
// call working table
$reports = Report::orderBy('id', 'asc');
// loop through every working report and save as a new prescription
foreach ($reports as $report) {
$prescription = new Prescription();
$prescription->script_id = $report->script_id;
$prescription->medication = $report->medication;
$prescription->fill_date = $report->fill_date;
$prescription->type = $report->type;
$prescription->quantity = $report->quantity;
$prescription->supply = $report->supply;
$prescription->insurance = $report->insurance;
$prescription->rx_number = $report->rx_number;
$prescription->copay = $report->copay;
$prescription->tr = $report->tr;
$prescription->cogs = $report->cogs;
$prescription->fees = $report->fees;
$prescription->ncr = $report->ncr;
$prescription->save();
}
// truncate working table
$reports->truncate();
// return
$message = 'All records transferred to prescriptions table.';
return redirect('reports')->with('success', $message);
Ответ №1:
Вам не хватает ->get()
в вашем запросе отчета, чтобы фактически получить результаты. Как есть, $reports
содержит только объект query builder.
$reports = Report::orderBy('id', 'asc')->get();
Скорее всего, впоследствии вам потребуется настроить вызов truncate:
Report::truncate();