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.
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...