Laravel,所有与所有关系都不能正常工作

时间:2015-07-23 16:38:58

标签: laravel eloquent

我有一个"任务"自我引用。我需要使用Eloquent中的whereHas方法。首先,我在同一个表中只使用了parent_id列,但我得到的是空模型。我已经读过这是一个issue并且只是在Laravel 5中得到修复。在这种情况下,我创建了我的数据透视表,#34; task_dependency",有两列:" task_id&#34 ;和" parent_id"。 这些是任务模型中的实现

public function parent()
{
 return $this->belongsToMany('Task', 'task_dependency', 'task_id', 'parent_id');
}

public function children()
{
 return $this->belongsToMany('Task', 'task_dependency', 'parent_id', 'task_id');
}

但我没有摆脱所有问题。 这段代码:

Task::whereHas('parent', function($q) {
    $q->where('status', 4);
})

生成以下查询:

select * from `tasks` where `tasks`.`deleted_at` is null and 
(select count(*) from `task_dependency` as 
`self_25523d38deca8ac023c5241dc6c5de6e` where 
`self_25523d38deca8ac023c5241dc6c5de6e`.`task_id` = `tasks`.`id` and 
`status` = '4' and `tasks`.`deleted_at` is null) >= 1

哪个没有返回核心结果。即使父任务的状态为4,它也不返回任何行。 我怎样才能解决这个问题?谢谢。

0 个答案:

没有答案