Я хочу обновить таблицу отношений 2, я пробовал, но я получил ошибку. Я использую Laravel 5.7 и Maatwebsite 3.1.
Это мой контроллер, я помещаю данные Excel в $ data:
public function import(){
$data = Excel::toArray(new AssignmentFAImport, request()->file('file'));
if ($data) {
collect(head($data))
->each(function ($row, $key) {
DB::table('fa_transaction')
->join('customer', 'fa_transaction.fa_transaction_id', '=', 'customer.fa_transaction_id')
->where('fa_transaction_id', $row['fa_transaction_id'])
->update(array_except($row, ['fa_transaction_id']));
});
return "Success";
}else{
return "Can not update";
}
}
и этот класс импорта:
<?php
namespace App\Imports;
use App\Models\Transaction\FA_transaction;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class AssignmentFAImport implements ToModel, WithHeadingRow
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
return new FA_transaction([
'nomen' => $row['nomen'],
'dispatch_group' => $row['dispatch_group'],
'address' => $row['address'],
'fa_transaction_id' => $row['fa_transaction_id'],
'fa_type_cd' => $row['fa_type_cd'],
'pcezbk' => $row['pcezbk'],
'status' => $row['status'],
'created_at' => $row['created_at'],
'worker_id' => $row['worker_id'],
'assign_date' => $row['assign_status'],
'reassigned_date' => $row['reassigned_date'],
'assign_status' => $row['assign_status'],
'urgent_status' => $row['urgent_status'],
'priority_status' => $row['priority_status'],
'sending_status' => $row['sending_status']
]);
}
}
и я получил такую ошибку:
Подсветка \ База данных \ QueryException (42000) SQLSTATE [42000]:
[Microsoft] [Драйвер ODBC 11 для SQL Server] [SQL Server] Неоднозначный
имя столбца 'fa_transaction_id'. (SQL: обновление [fa_transaction] установлено
[nomen] = 60215072, [dispatch_group] = CC31-DR, [адрес] = JL KALI
BARU TMR NO 32 RT 012 RW 013, [fa_type_cd] = FA-T4E, [pcezbk] =
0760309, [status] = P, [creation_at] = 2018-11-16 00: 00: 00.000,
[worker_id] = 2, [assign_date] = 2019-01-22 08: 54: 48.000,
[Reassigned_date]
=, [assign_status] = Назначено, [Urban_status] = 1, [priority_status] =, [sent_status] = из [fa_transaction] внутреннего соединения [клиент] на [fa_transaction]. [fa_transaction_id] = [клиент]. [fa_transaction_id]
где [fa_transaction_id] = 0210559377)
Я не знаю, почему имя столбца является неоднозначным, как это исправить?