खोजें
इसे आजमाएं
एक फ़ील्ड, हर प्रकार का परिणाम। पृष्ठ नाम राउटर से आते हैं और किसी घोषणा की आवश्यकता नहीं होती; रिकॉर्ड उन एंटिटीज़ से आते हैं जो नीचे उल्लेखित विशेषता लेकर आती हैं। प्रत्येक परिणाम में यह होता है कि यह कहाँ जाता है, इसलिए बार को यह निर्णय लेने की आवश्यकता नहीं होती कि एक क्लिक का क्या अर्थ है।
प्रदाता
एक प्रदाता खोजे जाने योग्य वस्तुओं का एक परिवार है। इंटरफ़ेस को लागू करना पूरी पंजीकरण प्रक्रिया है - ऑटो-कॉन्फ़िगरेशन इसे चिह्नित करता है, इसलिए एक एप्लिकेशन में लिखा गया प्रदाता अपने अस्तित्व से खोज में शामिल होता है। ये वही हैं जो यहाँ उत्तर देते हैं, उस नाम से जिससे एक क्वेरी खुद को सीमित करती है।
-
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);
}
}
खोजे जाने योग्य एंटिटीज़
क्लास बताती है कि एक एंटिटी खोजने योग्य है; इसकी विशेषताएँ बताती हैं कि किस पर, प्रत्येक अपने प्रकार के साथ - एक शीर्षक पढ़ा जाता है, एक मात्रा एक आंकड़ा है, एक पता सम्पूर्ण या कुछ नहीं है - और प्रकार SQL और बिंदुओं को निर्धारित करता है। विरासत के सात में से छह स्कोरिंग फ़ंक्शन उस सूची में छिपे हुए थे। सातवाँ तर्क करता है, और वही एक स्कोरिंग क्लास का नाम देता है; एंटिटी जिसका उत्तर उन पर निर्भर करता है जो पूछ रहे हैं, प्रदाता: सत्य जोड़ता है और अपना प्रदाता प्राप्त करता है।
-
contact
Wexample\SymfonyOrganization\Entity\Contact
फ़ील्ड : name (text), email (email) -
demo_message
Wexample\SymfonyDesignSystemDemo\Entity\DemoMessage
फ़ील्ड : body (text, 5) -
demo_room
Wexample\SymfonyDesignSystemDemo\Entity\DemoRoom
फ़ील्ड : name (text) -
demo_user
Wexample\SymfonyUserDemo\Entity\DemoUser
फ़ील्ड : email (email), username (text), firstName (text), lastName (text) -
organization
Wexample\SymfonyOrganization\Entity\Organization
फ़ील्ड : 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
एक परिणाम एक एंटिटी है, इसलिए इसका एंडपॉइंट उस एंटिटी का संग्रह है और कुछ नहीं। TypeScript रिपॉजिटरी जो उसी PHP क्लास से उत्पन्न होती है, इसे बताए बिना कॉल करती है कि यह कहाँ है - जो ऊपर वाले फ़ील्ड का उपयोग करता है।
क्वेरी पैरामीटर
- search
क्या खोजा जा रहा है। एक खाली क्वेरी कुछ नहीं जवाब देती बल्कि सब कुछ।
- context
जहाँ से खोज की जा रही है, जो यह निर्णय करती है कि यह क्या उत्तर दे सकती है। भेजे गए संदर्भ: default, header, form_field
- type
उत्तर को एक प्रकार तक सीमित करता है - एक एंटिटी का नाम, या एक प्रदाता कुंजी।
- length
कितने परिणाम। अनुपस्थित होने पर, बंडल कॉन्फ़िगरेशन निर्णय लेता है।
curl "/api/search-result/list?search=dupont&context=header&length=5"
अनुवाद
बार अपने स्वयं के लेबल चारों तरफ से घटक से पढ़ती है, इसलिए एक प्लेसहोल्डर मार्कअप में कभी नहीं लिखा जाता। दूसरी ओर, परिणाम शीर्षक स्वयं रिकॉर्ड से या रूट नाम से आते हैं - उनका अनुवाद अभी तक नहीं किया गया है, और एक पृष्ठ वर्तमान में अपने रूट नाम को मानवित दिखाता है।
# assets/components/search-bar.fr.yml
placeholder: Rechercher...
empty: Aucun résultat.
pending: Recherche en cours...