Heim >Backend-Entwicklung >PHP-Tutorial >Wie überprüfe ich, ob in Laravel ein verwandtes Modell vorhanden ist?

Wie überprüfe ich, ob in Laravel ein verwandtes Modell vorhanden ist?

Susan Sarandon
Susan SarandonOriginal
2024-11-05 14:12:02717Durchsuche

How to Check if a Related Model Exists in Laravel?

Überprüfen der Existenz verwandter Modelle in Laravel

In Laravel stellen Eloquent-Modelle Datenbankentitäten dar und bieten praktische Methoden zum Verwalten von Beziehungen zwischen diesen Entitäten. Bei der Arbeit mit Beziehungen kann es jedoch erforderlich sein, zu prüfen, ob ein zugehöriges Modell vorhanden ist, bevor weitere Vorgänge ausgeführt werden.

Beachten Sie den folgenden Code:

<code class="php">public function option() {
    return $this->hasOne('RepairOption', 'repair_item_id');
}

public function setOptionArrayAttribute($values)
{
    $this->option->update($values);
}</code>

In diesem Szenario haben wir ein Modell, das eine Eins-zu-eins-Beziehung zu einem anderen Modell hat. Beim Erstellen oder Aktualisieren dieses Modells müssen wir feststellen, ob das zugehörige Modell vorhanden ist, um zu entscheiden, ob wir es aktualisieren oder erstellen möchten.

Lösung 1 (Laravel 7.2):

In Laravel 7.2 und höher können Sie die Methode „exists()“ für das Beziehungsobjekt verwenden, um zu überprüfen, ob das zugehörige Modell existiert:

<code class="php">$model = RepairItem::find($id);
if (Input::has('option')) {
    if ($model->option()->exists()) {
        // Option exists, update it
    } else {
        // Option does not exist, create it
    }
}</code>

Lösung 2 (vor Laravel 7.2):

In Laravel-Versionen vor 7.2 können Sie die count()-Methode für das Beziehungsobjekt verwenden, um zu überprüfen, ob das zugehörige Modell vorhanden ist:

<code class="php">if (count($model->option)) {
    // Option exists
} else {
    // Option does not exist
}</code>

Hinweis: Diese Methode funktioniert nur, wenn es sich bei der Relation um eine Einwertrelation handelt (z. B. hasOne, gehörtZu). Für Viele-zu-Viele-Beziehungen oder andere sammlungsbasierte Beziehungen können Sie Methoden wie count() oder isNotEmpty() für die Sammlung der Beziehung verwenden, um zu überprüfen, ob sie verwandte Modelle enthält.

Das obige ist der detaillierte Inhalt vonWie überprüfe ich, ob in Laravel ein verwandtes Modell vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn