Haku

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

/api/search-result/list
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...