如果第一个循环已经在Laravel中显示相同的帖子,则不要在第二个循环上显示重复的帖子

我正在使用laravel6建立字典网站。

当访问者搜索关键字时,将运行2个查询来查找帖子。

Controller.php

public function index(Request $request)
{     
    $keyword = $request->input('keyword');

    $query = Post::query();
    $query2 = Post::query();

    if(!empty($keyword)){


        $query->where('word','like','%'.$keyword.'%');
        $data = $query->orderby('word', 'DESC')->paginate(4);


        $query2->where('definition','like','%'.$keyword.'%');
        $data2 = $query2->orderby('definition', 'DESC')->paginate(4);


        return view('index')->with(['keyword' => $keyword])->with(['data' => $data])->with(['data2' => $data2]);
    }
}

然后,显示第一个查询和第二个查询结果。

index.blade.php

@foreach($data as $val)
<div class="post">
<h2>{{$val->word}}</h2>
<p>{{$val->definition}}</p>
</div>
@endforeach


@foreach($data2 as $val2)
<div class="post">
<h2>{{$val2->word}}</h2>
<p>{{$val2->definition}}</p>
</div>
@endforeach

问题是,第二个循环($ data2)显示$ data的重复帖子。 那么,如何在$ data2循环中不显示重复的帖子?

我尝试像:

@foreach($data2 as $val2)
@if($val2->id !== $val->id)
<div class="post">
<h2>{{$val2->word}}</h2>
<p>{{$val2->definition}}</p>
</div>
@endif
@endforeach

但是没有用。感谢任何建议。