Puncte:1

Cum se modifică rutele definite în route_callbacks?

drapel in

De obicei, modific rutele statice în abonatul rutelor:

  funcția protejată alterRoutes(RouteCollection $colecție) {
    $rută = $colecție->get('gutenberg.media.load_media');
    dacă ($rută) {
      $route->setDefault('_controller', '\Drupal\gutenberg_adv\Controller\MediaController::loadMedia');
    }
  }

Totuși, acest lucru nu funcționează pentru rutele definite în routes_callback, deci nu funcționează pentru ruta de căutare, de exemplu:

$rută = $colecție->get('search.view_node_search');
dacă ($rută) {
  $route->setDefault('_controller',
      „\Drupal\wi_misc\Controller\SearchController::view”);
}

Deci, cum se modifică controlerul de rută de căutare?

MacSim avatar
drapel um
Ai setat modulul „căutare” ca o dependență a propriului modul?
Puncte:-1
drapel jp

Încercați să modificați greutatea execuției alterRoutes funcţie. Puteți trece peste getSubscribedEvents funcţie:

funcția publică statică getSubscribedEvents(): matrice
{
    întoarcere [
        RoutingEvents::ALTER => [
            „onAlterRoutes”, 1
        ],
    ];
}

Observați că sun peAlterRoutes în loc de alterRoutes. Acest lucru se datorează faptului că în clasa părinte acesta este un wrapper pentru funcția apelată:

funcție publică statică getSubscribedEvents() {
    $events[RoutingEvents::ALTER] = 'onAlterRoutes';
    returnează $evenimente;
}

Cu cât numărul tău (= greutatea) este mai mare, cu atât este executat mai devreme (sau invers). Aș încerca cu câteva numere mari și unele mici și aș verifica rezultatul.

Nu am încercat niciodată cu acest eveniment specific, dar am folosit această metodă pentru a rezolva alte probleme cu evenimentele din unele RouteSubscriber.

Dacă utilizați drush pentru a vă șterge memoria cache (ceea ce ar trebui să faceți după ce ați schimbat codul într-un RouteSubscriber) atunci puteți folosi și var_dump($rută); pentru a vă asigura că ruta dvs. există și este încărcată corect. Dump-ul va fi afișat în cmd.

Sergey Kravchenko avatar
drapel in
din pacate acest lucru nu afecteaza deloc traseul cu siguranta exista, l-am verificat dar Drupal folosește în continuare controlerul implicit

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.