[英]How to pass user_id for importing excel using Laravel?
I have a problem with excel import using Laravel.我在使用 Laravel 导入 excel 时遇到问题。 The user wants import excel of suppliers data into database.用户要将供应商数据的 excel 导入数据库。 The suppliers
table got user_id
but the user may not have their own user_id
. suppliers
表有user_id
但用户可能没有自己的user_id
。 So, when importing excel file the user use excel without user_id
columns.因此,在导入 excel 文件时,用户使用没有user_id
列的 excel。 So I want to pass the user_id
of that user and stored in database.所以我想传递该用户的user_id
并存储在数据库中。
SuppliersImportController供应商进口控制器
public function store(Request $request)
{
$user_id = auth()->user()->id;
Excel::import(new SuppliersImport($user_id), request()->file('file'));
return redirect('/suppliers')->withStatus('Excel file imported successfully');
}
SuppliersImport供应商进口
public function __construct($user_id)
{
$this->user_id =$user_id;
}
public function model(array $row)
{
return new Supplier([
'name' =>$row[0],
'phone' =>$row[1],
'email' =>$row[2],
'address' =>$row[3],
'city' =>$row[4],
'country' =>$row[5],
'customer' =>$row[6],
'user_id'=> $this->user_id,
]);
Error错误
SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value (SQL: insert into suppliers
( name
, phone
, email
, address
, city
, country
, customer
, updated_at
, created_at
) values (soe, 176893848, soe@mail.com, abc, Yangon, Myanmar, 1, 2020-11-27 12:15:08, 2020-11-27 12:15:08)) SQLSTATE [HY000]:一般错误:1364 字段 'user_id' 没有默认值(SQL:插入suppliers
( name
、 phone
、 email
、 address
、 city
、 country
/地区、 customer
、 updated_at
、 created_at
)值(soe、176893848 , soe@mail.com, abc, Yangon, Myanmar, 1, 2020-11-27 12:15:08, 2020-11-27 12:15:08))
So what you can do is所以你能做的是
public function model(array $row)
{
$user = auth()->user(); //Get the current user
return new Supplier([
'name' =>$row[0],
'phone' =>$row[1],
'email' =>$row[2],
'address' =>$row[3],
'city' =>$row[4],
'country' =>$row[5],
'customer' =>$row[6],
'user_id'=> $user->id, // add their user id when importing
]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.