Haku
Kokeile
Yksi kenttä, kaikentyyppiset tulokset. Sivun nimet tulevat reitittimestä, eikä niitä tarvitse ilmoittaa; tietueet tulevat alla olevan attribuutin sisältävistä entiteeteistä. Jokainen tulos kertoo, minne se menee, joten palkilla ei ole päätettävää siitä, mitä klikkaus tarkoittaa.
Palveluntarjoajat
Palveluntarjoaja on yksi perhe löydettävissä olevista asioista. Käyttöliittymän toteuttaminen on koko rekisteröinti — automaattinen konfigurointi merkitsee sen, joten sovelluksessa kirjoitettu palveluntarjoaja liittyy hakuun olemalla olemassa. Nämä ovat niitä, jotka vastaavat täällä, nimellä, johon kysely rajoittuu.
-
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);
}
}
Haettavat entiteetit
Luokka sanoo, että entiteetti on löydettävissä; sen ominaisuudet sanovat, mihin, jokainen omalla tavallaan — otsikko luetaan, määrä on luku, osoite on kokonainen tai ei mitään — ja tyyppi päättää sekä SQL:stä että pisteistä. Kuusi seitsemästä perinnöstä oli tuo lista naamioituna. Seitsemäs järkeili, ja tuo nimeää pisteytysluokan; entiteetti, jonka vastaus riippuu siitä, kuka kysyy, lisää provider: true ja saa oman palveluntarjoajan.
-
contact
Wexample\SymfonyOrganization\Entity\Contact
Kentät : name (text), email (email) -
demo_message
Wexample\SymfonyDesignSystemDemo\Entity\DemoMessage
Kentät : body (text, 5) -
demo_room
Wexample\SymfonyDesignSystemDemo\Entity\DemoRoom
Kentät : name (text) -
demo_user
Wexample\SymfonyUserDemo\Entity\DemoUser
Kentät : email (email), username (text), firstName (text), lastName (text) -
organization
Wexample\SymfonyOrganization\Entity\Organization
Kentät : 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
Tulos on entiteetti, joten sen päätepiste on kyseisen entiteetin kokoelma eikä mitään muuta. TypeScript-repositorio, joka on luotu samasta PHP-luokasta, kutsuu sitä ilman, että sille kerrotaan, missä se on — mikä on se, mitä yllä oleva kenttä käyttää.
Kyselyparametrit
- search
Mitä etsitään. Tyhjään kyselyyn ei vastata mitään sen sijaan, että vastattaisiin kaikkeen.
- context
Mistä haku tehdään, mikä päättää, mihin se voi vastata. Lähetetyt kontekstit : default, header, form_field
- type
Rajoittaa vastauksen yhteen tyyppiin — entiteetin nimeen tai palveluntarjoajan avaimen.
- length
Kuinka monta tulosta. Poissa ollessa, paketin konfigurointi päättää.
curl "/api/search-result/list?search=dupont&context=header&length=5"
Käännökset
Palkki lukee omat tunnisteensa komponentin neljästä pinnasta, joten paikkaajaa ei koskaan kirjoiteta merkkaukseen. Tulostekstit puolestaan tulevat itse tietueesta tai reitin nimestä — niiden kääntäminen ei ole vielä kytketty, ja sivu näyttää tällä hetkellä reitin nimen ihmismäisenä.
# assets/components/search-bar.fr.yml
placeholder: Rechercher...
empty: Aucun résultat.
pending: Recherche en cours...