جستجو

جستجو

تجربه کنید

یک فیلد، هر نوع نتیجه. نام‌های صفحه از روتر می‌آیند و نیازی به اعلام ندارند؛ رکوردها از موجودیت‌هایی می‌آیند که ویژگی زیر را دارند. هر نتیجه نشان می‌دهد که به کجا می‌رود، بنابراین نوار هیچ تصمیمی در مورد معنای یک کلیک ندارد.

تأمین‌کنندگان

یک تأمین‌کننده یک خانواده از چیزهای قابل پیدا کردن است. پیاده‌سازی رابط، کل ثبت‌نام است — خودکارسازی آن را برچسب‌گذاری می‌کند، بنابراین یک تأمین‌کننده که در یک برنامه نوشته شده است، با وجود آن به جستجو ملحق می‌شود. این‌ها کسانی هستند که در اینجا پاسخ می‌دهند، بر اساس نامی که یک پرسش خود را به آن محدود می‌کند.

  • 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 و هم امتیازها را تعیین می‌کند. شش مورد از هفت تابع امتیازدهی میراث، همان لیست در لباس مبدل بودند. هفتمی استدلال کرد و آن یکی یک کلاس امتیازدهی را نام‌گذاری می‌کند؛ موجودیتی که پاسخ آن به اینکه چه کسی می‌پرسد بستگی دارد، تأمین‌کننده: true را اضافه می‌کند و یک تأمین‌کننده خاص خود را دریافت می‌کند.

  • 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

    چند نتیجه. در صورت نبود، پیکربندی بسته تصمیم می‌گیرد.

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