KTV/app/Livewire/Admin/ArtistImportData.php
allen.yan ac8a4f2eb0 歌手加入滙入功能
歌手新增修改頁補權限
20250505
2025-05-05 14:55:20 +08:00

59 lines
1.3 KiB
PHP

<?php
namespace App\Livewire\Admin;
use Illuminate\Support\Facades\Auth;
use Livewire\Component;
use Livewire\WithFileUploads;
use Maatwebsite\Excel\Facades\Excel;
use App\Imports\ArtistDataImport;
class ArtistImportData extends Component
{
use WithFileUploads;
protected $listeners = ['openModal','closeModal'];
public bool $canCreate;
public bool $showModal = false;
public $file;
public function mount()
{
$this->canCreate = Auth::user()?->can('song-edit') ?? false;
}
public function openModal()
{
$this->showModal = true;
}
public function closeModal()
{
$this->showModal = false;
}
public function import()
{
// 檢查檔案是否有上傳
$this->validate([
'file' => 'required|file|mimes:csv,xlsx,xls'
]);
if ($this->canCreate) {
$import = new ArtistDataImport();
Excel::import($import, $this->file);
$success = $import->successCount;
$fail = $import->failCount;
$this->reset('file');
$this->showModal =false;
session()->flash('message', '匯入完成:成功 $success 筆,失敗 $fail 筆。');
}
}
public function render()
{
return view('livewire.admin.artist-import-data');
}
}