2017-10-14 25 views
-1

Problem:Laravel eloquent Beziehung Suche mit Kind Tabellensatz

Ich will nur, dass Datensätze, in denen relationale Datensätzen [user] nicht null.

In meinem Fall Ich möchte nur erste Aufzeichnung. wo user nicht null

Ergebnis: enter image description here

Benutzertabelle

  • id
  • Name
  • E-Mail

Projekt Tabel

  • id
  • Titel
  • User_id [foreign key]

Mein Code ist wie dieser

$projects = App\Project::with(['user' => function ($user) { 
        $user->where('name', '=', 'Ketan'); 
       }]) 
       ->get(); 

foreach ($projects as $project) { 
    echo $project->title.' - '.$project; 
} 

Mein Ergebnis ist wie folgt: enter image description here

+0

Benötigen Sie nur ein Projekt (jedes Projekt), in dem der Benutzer nicht "null" ist? –

+0

Ja, @AlexeyMezenin. Ich möchte ein Projekt, bei dem der Benutzer nicht null ist. immer wenn ich diese Bedingung auf Ergebnis anwenden. Ich fand 6 Treffer auf der 1. Seite, 5 Treffer auf der 2. Seite, 8 Treffer auf der 3. Seite, so weiter ..... so, ** Ich möchte diese Bedingung auf Abfrage angewendet werden nicht auf die Ergebnisse. ** –

Antwort

-1

können Sie versuchen:

$projects = App\Project::whereHas(['user' => function ($user) {   <--Change Here 
        $user->where('name', '=', 'Ketan'); 
       }]) 
       ->get(); 

Nur Change 'mit' auf 'whereHas'

Durch diese Lösung

$projects = App\Project::with(['user' => function ($user) { 
        $user->where('name', '=', 'Ketan'); 
       }]) 
       ->get(); 

foreach ($projects as $project) { 
    if($project->user != null){ 
     echo $project->title.' - '.$project; 
    } 
} 
+0

Dies ist keine gute Lösung. Es wird jedes Projekt aus der Datenbank laden, damit Sie es durchlaufen und nur diejenigen mit einem Benutzer ausdrucken können. – fubar

0

I-Lösung meiner Frage bekam, ich habe hat nur die Projektdatensätze erhalten, in denen der Benutzer (relationaler Datensatz) nicht null ist.