| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace App\Filament\Resources\TextbookResource\Pages;
- use App\Filament\Resources\TextbookResource;
- use App\Services\TextbookApiService;
- use Filament\Actions;
- use Filament\Resources\Pages\ListRecords;
- use Illuminate\Contracts\Pagination\Paginator;
- use Illuminate\Pagination\LengthAwarePaginator;
- class ManageTextbooks extends ListRecords
- {
- protected static string $resource = TextbookResource::class;
- protected function getHeaderActions(): array
- {
- return [
- Actions\CreateAction::make()
- ->label('新建教材'),
- ];
- }
- protected function paginateTableQuery(\Illuminate\Database\Eloquent\Builder $query): Paginator
- {
- $apiService = app(TextbookApiService::class);
- $page = request()->get('page', 1);
- $perPage = $this->getTableRecordsPerPage();
- $result = $apiService->getTextbooks([
- 'page' => $page,
- 'per_page' => $perPage,
- ]);
- $records = collect($result['data'] ?? [])->map(function ($item) {
- return new \App\Models\Textbook($item);
- });
- return new LengthAwarePaginator(
- $records,
- $result['meta']['total'] ?? 0,
- $perPage,
- $page,
- ['path' => request()->url()]
- );
- }
- }
|