Puncte:0

Elementul pager nu apare pe formular

drapel in

Am un element simplu tableselect în formularul meu, iar rândurile tableselect sunt populate folosind un pager, după cum urmează:

$pagerLimit = 10; //valoare implicită dacă nu se transmite nimic
$interogare = $this->jobSkillStorage->getQuery();
$query->condition('tip', $skillType);   
$query->pager($pagerLimit)
$ids = $query->execute();
$jobSkills = $this->jobSkillStorage->loadMultiple($ids);  

returnează $jobSkills;

Limita de paginare funcționează bine și sunt returnate doar 10 rezultate, totuși controalele de paginare nu apar după selectarea tabelului. Vă rugăm să vedeți codul complet al modului în care a fost generat tableselect.

funcția publică buildForm(array $form, FormStateInterface $form_state) {

  $form['vtabs'] = [
    '#type' => 'file_verticale',
  ];

  $form['tech_skills' = [
    '#type' => 'detalii',
    '#title' => $this->t('Abilități tehnice'),
    '#group' => 'vtabs',
    'tech_skills_table' => [
      '#type' => 'tableselect',
      '#empty' => $this->t('Căutarea dvs. de abilități tehnice nu a revenit '
          . „orice rezultate.”),  
      '#header' => [
        'name' => $this->t('NUMELE ABILITĂRII'),
        'description' => $this->t('DESCRIPTION'),
        'status' => $this->t('STATUS'),
        'schimbat' => $this->t('ULTIMA ACTUALIZARE'),
        'actions' => $this->t('ACTIONS')  
      ],
      '#options' => $this->getTableOptions(),          
    ],
    'tech_skills_pager' => [
      '#theme' => 'paginator',     
    ],         
  ];

  returnează $form;

Cele mai multe exemple de paginare pe care le văd folosesc $build['pager'] mai degrabă decât $form['pager']. Mă întreb doar dacă paginatorul nu este un element care poate fi redat în formă? Ar putea fi acesta motivul pentru care nu apare? Cam pierdut în asta. Ceva ganduri va rog?

Mulțumiri

Kevin avatar
drapel in
Codul de mai sus are probleme de sintaxă.
ilechcod avatar
drapel in
Vă rog, în ce moment mai exact?
Puncte:0
drapel de

Cred că trebuie să folosești #temă Decat #tip. #tip este pentru elemente de formă, #temă este pentru elemente tematice, care sunt în afara (și, uneori, în interior) forme.

Ca un alt exemplu, masa este o #temă, în timp ce tableselect, care este un tabel cu elemente de formular, este a #tip.

ilechcod avatar
drapel in
Hei Jaypan, asta e una bună. Mulțumesc pentru răspunsul rapid. Tocmai am schimbat ```'type' => 'pager'``` la ```'theme' => 'pager' ``` iar paginatorul tot nu se afișează și am nevoie de o selecție de tabel pentru că am nevoie rânduri selectabile. Nu există o modalitate de a utiliza pager cu elementul tableselect?
Jaypan avatar
drapel de
Ai folosit hashtag-ul? `#theme` nu `theme`
ilechcod avatar
drapel in
Da, am făcut ```'#theme' => 'pager'```. Voi actualiza în curând întrebarea cu codul meu actual. Chiar supărat că nu pot obține ceva atât de simplu de lucrat!
Jaypan avatar
drapel de
Poate muta paginatorul într-o matrice de randare în afara formularului.
ilechcod avatar
drapel in
I'm still struggling to get this to work, folks. This should be stuff that works out of the box, what am I doing wrong? Pls has anybody else been able to use a pager with a tableselect?
Jaypan avatar
drapel de
Ați încercat să mutați matricea de randare a paginatorului din formular?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.