无法将 excel 导入数据库,数组没有值
Unable to import excel to database, array has no value
我正在尝试将 excel 导入我的数据库,但问题是我的插入数组中什么也没有。当我尝试 dd($inserts) 时,它只显示我
“[]”。
public function importExcel()
{
$path = Input::file('import_file')->getRealPath();
$inserts = [];
Excel::load($path, function($reader) use ($inserts) {
foreach ($reader->toArray() as $rows) { // <-- $rows pertains to array of rows
foreach($rows as $row) { // <-- $row pertains to the row itself
$inserts[] = ['title' => $row['title'], 'description' => $row['description']];
}
}
});
dd($inserts);
return back();
}
我已经在你之前的问题中找到了答案,你正在修改 $inserts
数组,但它只是那个闭包内的一个局部变量,如果你需要,你需要提供对它的引用要修改它,只需将您的闭包签名更新为此。
function($reader) use (&$inserts)
// ^-- add this to use its reference.
因此,当您在闭包内修改它时,它现在将反映在闭包外。
做同样事情的另一种方法:
Define private variables before constructor if you defined.
Class Test { //class name;
private $inserts;//define after class name
public function importExcel()
{
$path = Input::file('import_file')->getRealPath();
Excel::load($path, function($reader) {
foreach ($reader->toArray() as $rows) {
foreach($rows as $row) {
$this->inserts[] = ['title' => $row['title'], 'description' => $row['description']];
}
}
});
dd($this->inserts);
}
我正在尝试将 excel 导入我的数据库,但问题是我的插入数组中什么也没有。当我尝试 dd($inserts) 时,它只显示我 “[]”。
public function importExcel()
{
$path = Input::file('import_file')->getRealPath();
$inserts = [];
Excel::load($path, function($reader) use ($inserts) {
foreach ($reader->toArray() as $rows) { // <-- $rows pertains to array of rows
foreach($rows as $row) { // <-- $row pertains to the row itself
$inserts[] = ['title' => $row['title'], 'description' => $row['description']];
}
}
});
dd($inserts);
return back();
}
我已经在你之前的问题中找到了答案,你正在修改 $inserts
数组,但它只是那个闭包内的一个局部变量,如果你需要,你需要提供对它的引用要修改它,只需将您的闭包签名更新为此。
function($reader) use (&$inserts)
// ^-- add this to use its reference.
因此,当您在闭包内修改它时,它现在将反映在闭包外。
做同样事情的另一种方法:
Define private variables before constructor if you defined.
Class Test { //class name;
private $inserts;//define after class name
public function importExcel()
{
$path = Input::file('import_file')->getRealPath();
Excel::load($path, function($reader) {
foreach ($reader->toArray() as $rows) {
foreach($rows as $row) {
$this->inserts[] = ['title' => $row['title'], 'description' => $row['description']];
}
}
});
dd($this->inserts);
}