2017-09-09 9 views
0

このAPIの経路はうまくいき、JSONレスポンスを返していますが、現在は外部キーとしてcategory_idを返しています。また、JSONの 'category'の列から 'name'応答、それを行う方法?ヘルプは高く評価されます。Laravelの外部キーIDと名前を返す

Route::get('/quizzes', function() { 

$quizzes = App\Quiz::select('id','name','description','average_playtime','status','image','thumbnail','created_at','updated_at','category_id','user_id','category_name' 

    DB::raw('created_at >= DATE_SUB(CURDATE(),INTERVAL 10 day) as isNew')       

        )->where('status', 'active')->take(20)->get();   

    return Response::json(array(
     'error' => false, 

     'quizzes' => $quizzes, 
     'status_code' => 200 
    )); 


}); 
+0

使用を取得category_id' –

+0

'に基づくことができ、' category'からデータを取得するために参加uは説明plzはでき.. –

+0

https://laravel.com/docs/5.5/queries#joins – apokryfos

答えて

0

テーブルカテゴリに参加し、カテゴリ名

Route::get('/quizzes', function() { 
 
    $quiz = new App\Quiz(); 
 

 
    $selectClause = array(
 
        $quiz.getTable().'id', 
 
        $quiz.getTable().'name', 
 
        $quiz.getTable().'description', 
 
        $quiz.getTable().'average_playtime', 
 
        $quiz.getTable().'status', 
 
        $quiz.getTable().'image', 
 
        $quiz.getTable().'thumbnail', 
 
        $quiz.getTable().'created_at', 
 
        $quiz.getTable().'updated_at', 
 
        $quiz.getTable().'category_id', 
 
        $quiz.getTable().'user_id', 
 
        'c.category_name', 
 
        DB::raw($quiz.getTable().'created_at >= DATE_SUB(CURDATE(),INTERVAL 10 day) as isNew') 
 
       ); 
 
        
 
    $quizzes = App\Quiz::join('category AS c', 'c.category_id', '=', $quiz.getTable().'category_id') 
 
        ->select($selectClause) 
 
        ->where('status', 'active') 
 
        ->take(20) 
 
        ->get(); 
 
         
 
    return Response::json(array(
 
       'error' => false, 
 
       'quizzes' => $quizzes, 
 
       'status_code' => 200 
 
     )); 
 
});

関連する問題