【发布时间】:2016-12-27 19:01:30
【问题描述】:
我的查询有问题。 我有 3 个模型:Course、MainTask 和 Task。 Course 有很多 MainTask,而 MainTask 有很多 Task。
我将用户当前的 MainTask 存储在数据库中,我想选择具有主要任务的课程以及用户当前的主要任务和课程所在的任务。
我的尝试:
$tasks=Course::where('id',$current->current_course)->whereHas('mainTask', function ($q) use ($current)
{
$q->where('id',$current->current_main_task_id);
})->with('mainTask.task')->first();
但这会返回所有主要任务,而不仅仅是 1。
class Course extends Model
{
public function mainTask () {
return $this->hasMany('App\MainTask');
}
}
class MainTask extends Model
{
use SoftDeletes;
public function task () {
return $this->hasMany('App\Task');
}
public function course () {
return $this->belongsTo('Courses');
}
}
class Task extends Model
{
use SoftDeletes;
public function mainTask () {
return $this->belongsTo('MainTask');
}
}
有什么建议吗?
谢谢
【问题讨论】:
标签: php laravel relationship