Laravel 童子军关系问题

Laravel Scout issue with relationship

使用 Laravel scout 我想删除一条记录(在 Agent 模型上),一切正常,除了我在删除后重定向到代理列表,并且因为队列还没有被删除的agent从美丽搜索返回,但是Eloquent模型已经不存在了,导致报错Attempt to read property "id" on null:

// getting agents to display in the view
Agent::search($this->search)
    ->orderBy('id', 'asc')
    ->paginate($this->perPage)

// showing an agent ID in a loop in the view
{{ $agent->user->id }}

如果重新加载页面,列表没问题 - 已删除的用户已成功删除。我怎样才能避免这个错误?

令我惊讶的是 scout 在集合中包含空值...

但是,您可以对返回的集合 运行 ->filter() (docs) 删除其中的所有 null 结果:

Agent::search($this->search)->get()->filter();

该集合现在不包含任何空值