Szukaj

Szukaj

Wypróbuj

Jedno pole, każdy rodzaj wyniku. Nazwy stron pochodzą z routera i nie wymagają deklaracji; rekordy pochodzą z encji posiadających atrybut poniżej. Każdy wynik zawiera informacje, gdzie prowadzi, więc pasek nie ma nic do zdecydowania, co oznacza kliknięcie.

Dostawcy

Dostawca to jedna rodzina rzeczy, które można znaleźć. Implementacja interfejsu to cała rejestracja — autokonfiguracja oznacza to, więc dostawca napisany w aplikacji dołącza do wyszukiwania poprzez istnienie. To są ci, którzy odpowiadają tutaj, według nazwy, do której ogranicza się zapytanie.

  • entity

    Wexample\SymfonySearch\Class\Provider\EntitySearchProvider

  • route

    Wexample\SymfonySearch\Class\Provider\RouteSearchProvider

class CommandSearchProvider extends AbstractSearchProvider
{
    public function provide(SearchQuery $query): iterable
    {
        // yield $this->createResult($reference, $title)->setScore($score);
    }
}

Wyszukiwalne encje

Klasa wskazuje, że encja jest znajdowana; jej właściwości mówią, na co, każda z ich rodzaju — tytuł jest odczytywany, ilość to liczba, adres jest pełny lub żaden — a rodzaj decyduje zarówno o SQL, jak i o punktach. Sześć z siedmiu funkcji punktacji dziedzictwa to ta lista w przebraniu. Siódma myślała, a ta jedna nazywa klasę punktacji; encja, której odpowiedź zależy od tego, kto pyta, dodaje provider: true i otrzymuje swojego dostawcę.

  • contact

    Wexample\SymfonyOrganization\Entity\Contact
    Pola : name (text), email (email)

  • demo_message

    Wexample\SymfonyDesignSystemDemo\Entity\DemoMessage
    Pola : body (text, 5)

  • demo_room

    Wexample\SymfonyDesignSystemDemo\Entity\DemoRoom
    Pola : name (text)

  • demo_user

    Wexample\SymfonyUserDemo\Entity\DemoUser
    Pola : email (email), username (text), firstName (text), lastName (text)

  • organization

    Wexample\SymfonyOrganization\Entity\Organization
    Pola : name (text), vatNumber (text), legalIdentifier (text), email (email)

#[ORM\Entity]
#[Searchable(route: 'app_invoice_show')]
class Invoice extends AbstractEntity
{
    #[SearchText]
    protected string $label;

    #[SearchAmount(points: 40)]
    protected float $priceTotal;
}

API

Wynik to encja, więc jej punkt końcowy to kolekcja tej encji i nic więcej. Repozytorium TypeScript wygenerowane z tej samej klasy PHP wywołuje to bez wskazywania, gdzie się znajduje — co jest tym, co wykorzystuje pole powyżej.

Parametry zapytania

  • search

    Czego się szuka. Puste zapytanie nie odpowiada niczemu zamiast wszystkiemu.

  • context

    Z jakiego miejsca jest przeprowadzane wyszukiwanie, co decyduje, na co może odpowiedzieć. Wysłane konteksty : default, header, form_field

  • type

    Ogranicza odpowiedź do jednego rodzaju — nazwy encji lub klucza dostawcy.

  • length

    Ile wyników. Nieobecne, konfiguracja pakietu decyduje.

/api/search-result/list
curl "/api/search-result/list?search=dupont&context=header&length=5"

Tłumaczenia

Pasek odczytuje swoje etykiety z czterech stron komponentu, więc placeholder nigdy nie jest zapisany w markupie. Tytuły wyników, z drugiej strony, pochodzą z samego rekordu lub z nazwy trasy — tłumaczenie tych nie jest jeszcze podłączone, a strona obecnie pokazuje swoją nazwę trasy w zrozumiałej formie.

# assets/components/search-bar.fr.yml
placeholder: Rechercher...
empty: Aucun résultat.
pending: Recherche en cours...