2016-05-03 4 views
-1

Hier ist meine Funktion zum Laden von Einreichungen von einem Benutzer erstellt.Laravel ORM Auswahl Abfrage Funktion load() auf Null

public function viewSubs() 
{ 
    $user = User::find(Input::get('id')); 
    $submissions = Submission::find($user)->sortByDesc('created_at'); 

    $submissions->load('user')->load('votes')->load('suggestions.votes'); 

    return view('submissions.index' , compact('submissions')); 
} 

Das gibt mit einem Fehler

Aufruf einer Member-Funktion load() auf null

, wenn es keine Aufzeichnungen über die Vorlage sind.

Wie behandelt man, wenn es keine Vorlage in der DB gibt?

+0

Sie müssen den 'Null'-Fall umgehen, Sie sind bereits zu diesem Punkt gekommen, also denke ich, dass eine Überprüfung für einen' Null'-Wert keine große Herausforderung für Sie ist. –

Antwort

1

einfach überprüfen, ob seine null zunächst eine if-Anweisung:

public function viewSubs() 
{ 
    $user = User::find(Input::get('id')); 

    if ($submissions = Submission::find($user)->sortByDesc('created_at')) { 
     $submissions->load('user')->load('votes')->load('suggestions.votes'); 
    } 

    return view('submissions.index' , compact('submissions')); 
} 

Auch abhängig von Ihrer DB-Struktur bin ich ziemlich sicher, dass Sie Ihre Modelle Beziehungen durch die Verwendung einer Menge des Codes ausgeschnitten durch etwas zu tun, wie folgt aus:

$user = User::find(Input::get('id')) 
    ->with(['submissions' => function($query) { 
     $query->orderBy('created_at', 'asc'); 
    }, 'submissions.votes', 'submissions.suggestions.votes']); 

Dann passieren die $user Variable in die Ansicht oder:

$submissions = Submission::with('user', 'votes', 'suggestions.votes') 
    ->where('user_id', Input::get('id')) 
    ->sortByDesc('created_at') 
    ->first(); 

Nicht ganz sicher, der Code wird perfekt funktionieren, aber ich bin sicher, dass Sie es zwicken können. Der Punkt ist, dass Ihr Code viel kürzer und dennoch lesbar sein kann, wenn Sie Beziehungen verwenden, die Sie bereits eingerichtet haben.

+0

Gern geschehen. – haakym

Verwandte Themen