【发布时间】:2021-01-14 15:30:18
【问题描述】:
在哪里可以找到这个onlySheets 方法?
我想从包含名为“客户”的工作表的 Excel 文件中导入数据。
我创建了一个ClientsImport.php 文件:
<?php
namespace App\Imports;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
class ClientsImport implements WithMultipleSheets
{
// MULTIPLE SHEETS
public function sheets(): array
{
return [
'clients' => new ClientsSheetImport(),
];
}
// END MULTIPLE SHEETS
}
然后创建ClientSheetImport.php 文件以从给定的 Excel 文件中获取行并验证数据:
<?php
namespace App\Imports;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithValidation;
// use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMappedCells;
use App\Client;
class ClientsSheetImport implements ToModel, WithValidation, WithMappedCells
{
/**
* @param array $row
*
* @return Client|null
*/
public function model(array $row)
{
return new Client([
'nrc_entrp' => $row['nrc_entrp'],
'raisoci' => $row['raisoci'],
]);
}
public function rules(): array {
return [
'nrc_entrp'=> 'required|unique:clients|max:20',
'raisoci'=> 'required|unique:clients|max:100',
];
}
public function mapping(): array
{
return [
'nrc_entrp' => 'B1',
'raisoci' => 'B2',
];
} // mapping
}
在ImportClientController.php 中,我想使用此给定代码从 Excel 文件(“客户”工作表“)导入一张工作表:
$import_client = new ClientsImport();
$import_client->onlySheets('clients');
Excel::import($import_client, $file_url);
但是我收到了这个错误:
Call to undefined method App\Imports\ClientsImport::onlySheets()
在哪里可以找到这个onlySheets 方法?
谢谢
【问题讨论】:
标签: php excel laravel laravel-excel