label('新建教材'), ]; } protected function paginateTableQuery(\Illuminate\Database\Eloquent\builder $query): Paginator { return $this->getTableRecords(); } public function getTableRecords(): Paginator { $apiService = app(TextbookApiService::class); $page = request()->get('page', 1); $perPage = $this->getTableRecordsPerPage(); \Log::info('ManageTextbooks::getTableRecords called', [ 'page' => $page, 'perPage' => $perPage ]); $result = $apiService->getTextbooks([ 'page' => $page, 'per_page' => $perPage, ]); \Log::info('API result', [ 'total' => $result['meta']['total'] ?? 0, 'count' => count($result['data'] ?? []) ]); $records = collect($result['data'] ?? [])->map(function ($item) { $model = new \App\Models\Textbook(); // 直接设置属性 foreach ($item as $key => $value) { $model->setAttribute($key, $value); } $model->exists = true; // 确保ID被正确设置 if (isset($item['id'])) { $model->id = $item['id']; } // 设置关联 if (isset($item['series'])) { $seriesModel = new \App\Models\TextbookSeries(); foreach ($item['series'] as $key => $value) { $seriesModel->setAttribute($key, $value); } $seriesModel->exists = true; $model->setRelation('series', $seriesModel); } return $model; }); return new LengthAwarePaginator( $records, $result['meta']['total'] ?? 0, $perPage, $page, ['path' => request()->url()] ); } }