Userのnameカラムで検索したい場合
<input type="text" name="name">
ここに記述したのが下の$request->name
になる
Post.php
public static function search(Request $request)
{
$query = self::query();
if ($request->name) {
$query->whereHas('user', function ($query) use ($request) {
$query->where('name', 'like', "%{$request->name}%")
});
return $query->all();
}
コントローラから呼び出します。
PostController.php
public function index(Request $request)
{
return view('post.index', [
'posts' => Post::search($request),
]);
}
ビューで表示
post/index.blade.php
@foreach ($posts as $post)
{{ $post->title }}
@endforeach
formはgetメソッドで渡します。
こんな感じでできるはず。