2016-08-09 5 views
1

コース情報を返すこのJSONを検討してください。laravel json外部キーデータ出力

{ 
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" 
} 

私はuser_idとcourse_category_idを渡しています。 user_idとcourse_category_idを渡す代わりに、ブレードファイル($ course-> user-> name)のように、ユーザー名とcourse_category名を渡したいと思います。彼らは別のテーブルにあります。 user_idにはUserモデルとの関係があります。だから、コースのモデル内のメソッドは、

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

とcourse_category_idのため、私のコントローラで

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

です:

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

私はそれをどのように行うことができますか?

+0

あなたはより特異的であり得ますどこにこだわっていますか? – EJoshuaS

+0

@NoobCoderこの質問にはもう助けが必要ですか? – Alphonsus

答えて

0

whereHasを使用してください。 Eloquent docsリレーションシップ存在のクエリセクションを参照してください。

例:「?どのように私はそれを行うことができます」

$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(); 
関連する問題