laravel json输出外键数据

时间:2016-08-09 03:39:11

标签: php mysql json laravel

考虑这个返回课程信息的JSON。

print(self?.highScore)

我正在传递user_id和course_category_id。我想传递用户名和course_category名称,而不是传递user_id和course_category_id,就像我们在刀片文件中一样($ course-> user-> name)。他们在不同的桌子上。 user_id与用户模型有关系。所以课程模型中的方法是

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

和course_category_id,

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

在我的控制器中:

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

我该怎么做?

1 个答案:

答案 0 :(得分: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();