Laravelを使用してリレーショナルテーブルの複数の列の文字列を検索します。
P粉590929392
P粉590929392 2024-03-19 17:39:04
0
1
330

私は空間モデルと関係があります。

パブリック関数 user()
{
  return $this->belongsTo(User::class)->withTrashed();
}

私のコントローラーで、「users」テーブルの「first_name」列と「last_name」列から文字列を検索したいと考えています。

しかし、whereRelation に「or」条件を記述する構文が見つかりませんでした。

$クエリ = 新しいスペース();

$query = $query->with('user')->whereRelation('user', 'first_name', 'like', '%' . $request->search . '%');

whereRelation を使用してリレーショナル テーブルの複数の列内の文字列を検索するにはどうすればよいですか?

P粉590929392
P粉590929392

全員に返信(1)
P粉511749537

######オプション1。

2 つのフィールドから個別に検索できます: Space::with('user')->whereHas('user', function ($query) use ($request) { $query->where('first_name', 'LIKE', '%' . $request->search . '%') ->orWhere('last_name', 'LIKE', '%' . $request->search . '%'); });

オプション 2。 

あなたが本当に望んでいるのは、2 つのフィールドを (間にスペースを入れて) 連結し、検索結果をそのフィールドと比較することだと思います。 Illuminate\Support\Facades\DB を使用します。 // ... Space::with('user')->whereHas('user', function ($query) use ($request) { $query->where( DB::raw('CONCAT(名, " ", 姓)'), 'のように'、 '%' . $request->search . '%' ); });

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート