Это кажется довольно простым, но не повезло.У меня есть отношения один ко многим от Task
до Block
.Отношения: Task->blocks
:
public function blocks()
{
return $this->hasMany(Block::class, 'task_uuid', 'task_uuid');
}
Blocks->task
:
public function task()
{
return $this->belongsTo(Task::class, 'task_uuid', 'task_uuid');
}
С этим я могу получить все блоки задачи, например, так: $task->blocks;
.Я пытаюсь вытащить все срывы из набора задач: $tasks->pluck('blocks')
и использовать локальную область видимости, которая есть на модели Block
:
public function scopeUnresolved($query)
{
return $query->where('resolved_at', null);
}
Некоторые из моих попыток (даже супер глупые)): $tasks->pluck('blocks')->unresolved()->get();
$tasks->pluck('blocks')->flatten()->unresolved()->get();
$tasks->pluck('blocks')->filter()->get()->unresolved()->get();
и еще несколько других.Я получил это на работу:
$tasks->pluck('blocks')->flatten()->filter(function ($block) {
return $block->unresolved()->get();
});
Кажется, что есть более краткий способ сделать это, но, возможно, нет?Есть идеи по этому поводу?Спасибо!