【发布时间】:2019-10-20 08:57:05
【问题描述】:
这看起来很简单,但没有任何运气。我有一对多 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();
});
似乎有一种更简洁的方式来解决它,但也许不是?对此有何见解?谢谢!
【问题讨论】:
标签: php laravel laravel-5 eloquent laravel-5.8