ฉันมีองค์ประกอบ tableselect อย่างง่ายในแบบฟอร์มของฉัน และแถวของ tableselect ถูกเติมโดยใช้เพจเจอร์ดังนี้:
$pagerLimit = 10; // ค่าเริ่มต้นหากไม่มีการส่งผ่าน
$query = $this->jobSkillStorage->getQuery();
$query->condition('ประเภท', $skillType);
$query->เพจเจอร์($pagerLimit)
$ids = $query->execute();
$jobSkills = $this->jobSkillStorage->loadMultiple($ids);
คืน $jobSkills;
ขีดจำกัดการแบ่งหน้าทำงานได้ดีและส่งคืนผลลัพธ์เพียง 10 รายการ อย่างไรก็ตาม ตัวควบคุมการแบ่งหน้าจะไม่แสดงหลังจากเลือกตาราง โปรดดูรหัสแบบเต็มของวิธีการสร้าง tableselect
ฟังก์ชันสาธารณะ buildForm (อาร์เรย์ $form, FormStateInterface $form_state) {
$form['vtabs'] = [
'#type' => 'vertical_tabs',
];
$แบบฟอร์ม['tech_skills' = [
'#type' => 'รายละเอียด',
'#title' => $this->t('ทักษะด้านเทคนิค'),
'#group' => 'vtabs',
'tech_skills_table' => [
'#type' => 'เลือกตาราง',
'#empty' => $this->t('การค้นหาทักษะด้านเทคนิคของคุณไม่ส่งคืน '
. 'ผลลัพธ์ใดๆ'),
'#ส่วนหัว' => [
'name' => $this->t('ชื่อทักษะ'),
'description' => $this->t('DESCRIPTION'),
'สถานะ' => $this->t('สถานะ'),
'เปลี่ยนแปลง' => $this->t('ปรับปรุงล่าสุด'),
'การกระทำ' => $this->t('การกระทำ')
]
'#options' => $this->getTableOptions(),
]
'tech_skills_pager' => [
'#theme' => 'เพจเจอร์',
]
];
คืนฟอร์ม $;
ตัวอย่างการเพจส่วนใหญ่ที่ฉันเห็นใช้ $build['pager'] มากกว่า $form['pager'] ฉันแค่สงสัยว่าเพจเจอร์ไม่ใช่องค์ประกอบที่เรนเดอร์ฟอร์มได้หรือไม่ นั่นอาจเป็นเหตุผลที่มันไม่แสดง? ค่อนข้างสูญเสียกับสิ่งนี้ ความคิดใด ๆ โปรด?
ขอบคุณ