Tìm kiếm
Thử ngay
Một trường, mọi loại kết quả. Tên trang xuất phát từ bộ định tuyến và không cần khai báo; các bản ghi đến từ các thực thể mang thuộc tính bên dưới. Mỗi kết quả đều có nơi đến của nó, vì vậy thanh tìm kiếm không cần quyết định về ý nghĩa của mỗi cú nhấp chuột.
Nhà cung cấp
Một nhà cung cấp là một nhóm những thứ có thể tìm thấy. Việc triển khai giao diện là toàn bộ quá trình đăng ký — tự cấu hình đánh dấu nó, vì vậy một nhà cung cấp được viết trong ứng dụng sẽ tham gia tìm kiếm bằng cách tồn tại. Đây là những cái trả lời ở đây, theo tên mà truy vấn giới hạn chính nó.
-
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);
}
}
Các thực thể có thể tìm kiếm
Lớp nói rằng một thực thể là có thể tìm thấy; các thuộc tính của nó cho biết về cái gì, mỗi thuộc tính có loại của nó — một tiêu đề được đọc, một số lượng là một con số, một địa chỉ là toàn bộ hoặc không có gì — và loại quyết định cả SQL và các điểm. Sáu trong bảy hàm tính điểm của di sản đã là danh sách đó trong hình thức giả. Lý do thứ bảy đã suy luận, và cái đó đặt tên cho một lớp tính điểm; thực thể mà câu trả lời của nó phụ thuộc vào ai đang hỏi thêm thuộc tính provider: true và có một nhà cung cấp riêng của nó.
-
contact
Wexample\SymfonyOrganization\Entity\Contact
Các trường : name (text), email (email) -
demo_message
Wexample\SymfonyDesignSystemDemo\Entity\DemoMessage
Các trường : body (text, 5) -
demo_room
Wexample\SymfonyDesignSystemDemo\Entity\DemoRoom
Các trường : name (text) -
demo_user
Wexample\SymfonyUserDemo\Entity\DemoUser
Các trường : email (email), username (text), firstName (text), lastName (text) -
organization
Wexample\SymfonyOrganization\Entity\Organization
Các trường : 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
Một kết quả là một thực thể, vì vậy điểm cuối của nó là tập hợp của thực thể đó và không có gì khác. Kho lưu trữ TypeScript được tạo ra từ cùng một lớp PHP gọi nó mà không cần được chỉ định nơi nó ở — đó là điều mà trường phía trên sử dụng.
Tham số truy vấn
- search
Điều gì đang được tìm kiếm. Một truy vấn trống không trả lời gì cả thay vì mọi thứ.
- context
Nơi mà tìm kiếm được thực hiện từ đó, điều này quyết định cái mà nó có thể trả lời. Các ngữ cảnh đã được gửi: default, header, form_field
- type
Giới hạn câu trả lời chỉ cho một loại — tên thực thể, hoặc khóa nhà cung cấp.
- length
Số lượng kết quả. Nếu không có, cấu hình gói sẽ quyết định.
curl "/api/search-result/list?search=dupont&context=header&length=5"
Dịch thuật
Thanh tìm kiếm đọc nhãn riêng của nó từ bốn mặt của thành phần, vì vậy một giá trị giữ chỗ không bao giờ được viết trong markup. Ngược lại, tiêu đề kết quả xuất phát từ bản ghi chính nó hoặc từ tên tuyến đường — việc dịch những cái đó vẫn chưa được kết nối, và một trang hiện tại hiển thị tên tuyến đường theo cách dễ hiểu.
# assets/components/search-bar.fr.yml
placeholder: Rechercher...
empty: Aucun résultat.
pending: Recherche en cours...