Reputation: 501
I will try explain the best i can. I have table with advretisements like a cars for example. I have relation tables like: make, model. Which means in adv table can entry
id|make_id|model_id 1 | 23 | 33
make_id is Hyundai and model id is Excel I have search box when you type search keyword
if i type Hyundai
// create search model
$adv = Advertisement::query();
// status activate 64
$adv->where('user_id', Auth()->user()->id);
// make
$adv->whereHas('make', function($query) use($request) {
$query->where('name', 'like', '%' . $request->search_adv . '%');
});
dd($adv->get());
Works perfect for make. but when i make
// create search model $adv = Advertisement::query();
// status activate 64
$adv->Where('user_id', Auth()->user()->id);
// make
$adv->whereHas('make', function($query) use($request) {
$query->orWhere('name', 'like', '%' . $request->search_adv . '%');
});
// model
$adv->whereHas('model', function($query) use($request) {
$query->orWhere('name', 'like', '%' . $request->search_adv . '%');
});
dd($adv->get());
How should be done ?
Upvotes: 0
Views: 31
Reputation: 488
// status activate 64
$adv->Where('user_id', Auth()->user()->id);
// make
$adv->whereHas('make', function($query) use($request) {
$query->where('name', 'like', '%' . $request->search_adv . '%');
});
// model
$adv->orWhereHas('model', function($query) use($request) {
$query->where('name', 'like', '%' . $request->search_adv . '%');
});
dd($adv->get());
Upvotes: 2