问题描述
在哪里可以找到这个 onlySheets
方法?
我想从包含名为“客户”的工作表的 Excel 文件中导入数据。
<?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
方法?
谢谢
解决方法
我这样做了并且有效。 添加这个:
class UserImport implement ...{
use WithConditionalSheets;
public function conditionalSheets(): array
{
return [
'Sheet1' => new ReadImport(),];
}
...
}