Heim  >  Artikel  >  Backend-Entwicklung  >  Wie überprüfe ich die Existenz eines verwandten Modells in Laravel?

Wie überprüfe ich die Existenz eines verwandten Modells in Laravel?

Barbara Streisand
Barbara StreisandOriginal
2024-11-05 17:42:02563Durchsuche

How to Check for the Existence of a Related Model in Laravel?

Laravel: Überprüfung auf die Existenz eines verwandten Modells

Beim Erstellen von Laravel-Modellen mit Beziehungen ist die Bestimmung der Existenz eines verwandten Modells von entscheidender Bedeutung für die Handhabung von Updates und Kreationen. In Szenarien, in denen das zugehörige Modell zunächst möglicherweise nicht vorhanden ist, muss seine Anwesenheit überprüft werden.

Lösung für PHP 7.2 und höher:

Für PHP 7.2 und höher: a Eine einfache Lösung besteht darin, die Methode „exists()“ für das Beziehungsobjekt zu verwenden:

<code class="php">$model->relation()->exists();</code>

Generische Lösung für Versionen vor PHP 7.2:

Für Versionen vor PHP 7.2 , es gibt eine generische Lösung, die auf alle Beziehungstypen anwendbar ist:

<code class="php">if (count($model->relation))
{
  // exists
}</code>

Verstehen der Auswertungen:

  • Einzelne Beziehungen: Wenn die Wenn ein zugehöriges Modell vorhanden ist, gibt count() 1 (wahr) zurück. Wenn es nicht existiert, gibt count() 0 (falsch) zurück.
  • Zu-Viele-Beziehungen: Wenn keine verwandten Modelle vorhanden sind, gibt count() 0 (falsch) zurück, was darauf hinweist eine nicht existierende Sammlung. Wenn verwandte Modelle vorhanden sind, gibt count() unabhängig von der Anzahl der Modelle eine positive Ganzzahl (true) zurück.

Beispielverwendung:

In Ihrem Szenario können Sie den folgenden Code verwenden, um zu prüfen, ob ein Optionsmodell vorhanden ist:

<code class="php">if (Input::has('option')) {
    if ($model->option()->exists()) {
        // update option
    } else {
       // create option
    }
};</code>

Das obige ist der detaillierte Inhalt vonWie überprüfe ich die Existenz eines verwandten Modells in Laravel?. 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