环境
框架/插件 | 版本 |
---|---|
laravel | 6.20 |
encore/laravel-admin | 1.8.11 |
以下讨论均是对设备表Devices,结构为(id, name, device_sn, model_number) orm模型文件 app/Model/Device.php
步骤
一、添加导入Action
php artisan admin:action Imports\ImportDevice --name="导入数据"
- 生成的类文件
app/Admin/Actions/Imports/ImportDevice.php
:
<?php
namespace App\Admin\Actions\Imports;
use Encore\Admin\Actions\Action;
use Illuminate\Http\Request;
class ImportDevice extends Action
{
protected $selector = '.import-device';
public function handle(Request $request)
{
// $request ...
return $this->response()->success('Success message...')->refresh();
}
public function html()
{
return <<<HTML
<a class="btn btn-sm btn-default import-tenant">导入数据</a>
HTML;
}
}
二、安装插件
composer require maatwebsite/excel
- 添加导入类
php artisan make:import DeviceImport --model=Model\Device
- 生成的类文件
app/Imports/DeviceImport.php
:
<?php
namespace App\Imports;
use App\Model\Device;
use Maatwebsite\Excel\Concerns\ToModel;
class DeviceImport implements ToModel
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function