検索コードを書いてみました。これが私のコードです:
$services = Service::query()->with('plans')->latest(); if ($request->サービス名) { $services = $services->whereRaw("CONVERT(JSON_EXTRACT(name, '$.ar') using 'utf8') LIKE '%$request->service_name%' ") ->orWhereRaw("CONVERT(JSON_EXTRACT(name, '$.en') using 'utf8') LIKE '%$request->service_name%' ") ->orWhereRaw("CONVERT(JSON_EXTRACT(name, '$.he') using 'utf8') LIKE '%$request->service_name%' "); } if ($request->plan_name) { $plan_name = $request->plan_name; $services = $services->whereHas('plans', function ($q) use ($plan_name) { $q->where('name->ja','Like','%'.$plan_name.'%'); }); } $services->get();を返す
しかし、リクエストで plan_name を送信すると、コードはプラン名ではなくサービス名でフィルタリングします
リクエストでプラン名のコードを送信するときにプラン名でデータをフィルターしようとしましたが、機能しません