我有一个模型,我需要检查值并返回一个不健康的状态。我创建了一个Accessor,它正在工作并按预期返回true或false。
$task->unhealthy()
访问者代码
public function getUnhealthyAttribute(){
//Is in Active status
if ( $this->status_id == 1 ){
return true;
}
//Has overdue items
if ( $this->items()->overdue()->count() > 0 ) {
return true;
}
return false;
}
我现在要求检索所有"不健康"的集合。任务。
问题:是否可以将我的Accessor与范围一起使用?什么是正确的方法?
答案 0 :(得分:1)
一旦拥有所有任务的集合,您就可以使用collection's filter()
method仅过滤运行状况不佳任务:
$unhealthy_tasks = $tasks->filter(function($task, $key) {
return $task->unhealthy; // if returns true, will be in $unhealthy_tasks
});