2016-08-09 48 views
1

Betrachten Sie diese JSON, die eine Kursinformation zurückgibt.Laravel JSON-Ausgabe mit Fremdschlüsseldaten

{ 
id: 1, 
user_id: 1, 
course_category_id: 5, 
course_title: "PHP Programming Language", 
course_requirment: "Need to Know HTML CSS and Object Oriented Programming", 
promo_video: null, 
published: 0, 
created_at: "2016-08-04 16:14:39", 
updated_at: "2016-08-04 16:14:39" 
} 

Ich übergebe eine user_id und course_category_id. Statt die user_id und course_category_id zu übergeben, möchte ich den Benutzernamen und den course_category Namen wie in unseren Blade-Dateien ($ course-> user-> name) übergeben. Sie sind auf einem anderen Tisch. user_id hat eine Beziehung zum Benutzermodell. So ist die Methode in Kursmodell ist

public function user() 
{ 
    return $this->belongsTo(User::class); 
} 

und für course_category_id,

public function course_cateogory() 
{ 
    $return $this->belongsTo(CourseCategory::class); 
} 

in meinem Controller:

$course = Course::where('user_id',1)->where('course_category_id',5)->first(); 
    return response()->json($course,200); 

Wie kann ich es tun?

+0

Können Sie das konkretisieren als Wo steckst du fest? – EJoshuaS

+0

@NoobCoder Benötigen Sie weitere Hilfe zu dieser Frage? – Alphonsus

Antwort

0

Verwenden Sie whereHas. Siehe Abfrage der Beziehung Existenz Abschnitt in der Eloquent docs.

Beispiel: „Wie kann ich es tun“

$posts = Course::whereHas('user', function ($query) { 
    $query->where('name', 'like', 'name to search'); 
})->whereHas('course_category', function ($query) { 
    $query->where('course_name', 'like', 'course name to search'); 
})->get();