SearchResultEntryModel
Das SearchResultEntryModel
ist das Standardmodell für einzelne Suchergebnisse in CrispyCMS. Es implementiert das Interface SearchResultEntryInterface
und wird verwendet, um Suchergebnisse strukturiert darzustellen und weiterzugeben.
Konstruktor
__construct(string $title, string $snippet, string $url, string $source, Carbon $createdAt, Carbon $updatedAt)
Erzeugt eine neue Instanz von SearchResultEntryModel
.
Parameter:
- $title
: Titel des Suchergebnisses
- $snippet
: Kurzbeschreibung oder Auszug
- $url
: Link zum Suchergebnis
- $source
: Quelle des Ergebnisses (z. B. Modellname oder Plugin)
- $createdAt
: Erstellungsdatum als Carbon-Instanz
- $updatedAt
: Änderungsdatum als Carbon-Instanz
Beispiel:
use Crispy\Models\SearchResultEntryModel;
use Carbon\Carbon;
$entry = new SearchResultEntryModel(
title: 'Beispielseite',
snippet: 'Dies ist ein Suchergebnis.',
url: '/beispiel-seite',
source: 'custom',
createdAt: Carbon::now(),
updatedAt: Carbon::now()
);
Eigenschaften
- title: Titel des Suchergebnisses
- snippet: Kurzbeschreibung oder Auszug
- url: Link zum Ergebnis
- source: Quelle des Ergebnisses
- createdAt: Erstellungsdatum (Carbon)
- updatedAt: Änderungsdatum (Carbon)
Methoden
getTitle(): string
Gibt den Titel des Suchergebnisses zurück.
getSnippet(): string
Gibt einen Auszug oder eine Kurzbeschreibung des Ergebnisses zurück.
getUrl(): string
Gibt die URL zum Suchergebnis zurück.
getSource(): string
Gibt die Quelle des Suchergebnisses zurück.
getCreatedAt(): Carbon
Gibt das Erstellungsdatum des Ergebnisses zurück.
getUpdatedAt(): Carbon
Gibt das Änderungsdatum des Ergebnisses zurück.
toArray(): array
Gibt alle Felder des Suchergebnisses als Array zurück:
{
"title": "Seitentitel",
"snippet": "Kurzbeschreibung oder Auszug",
"url": "/seite-url",
"source": "Suchquelle",
"createdAt": "2025-09-15 12:34:56",
"updatedAt": "2025-09-15 12:34:56"
}
Verwendung
SearchResultEntryModel
-Objekte werden von Event-Listenern und Suchfunktionen verwendet, um Suchergebnisse zu erzeugen und weiterzugeben. Sie können direkt in Twig-Templates verarbeitet und angezeigt werden:
{% for entry in performSearchQuery(GET.q) %}
<li>
<a href="{{ entry.url }}">{{ entry.title }}</a>
<div class="snippet">{{ entry.snippet }}</div>
<span class="source">Quelle: {{ entry.source }}</span>
</li>
{% endfor %}
Hinweise
- Die Zeitstempel werden als Carbon-Instanzen gespeichert und bei der Ausgabe als String formatiert.
- Das Modell ist unveränderlich (final) und wird nur zur Ausgabe und Übergabe verwendet.