I have categories table and I want to display only the categories which are not available in the business_category table OR the business_category->approved is 2.
My code for that:
<div class="col-md-6">
<select multiple name="categories[]" id="categories" class="form-control @error('categories') is-invalid @enderror" autofocus required>
@foreach($categories as $category)
@foreach($business_categories as $business_category)
@if(($business_category->approved==2) || ($business_category->category_id != $category->id))
<option value="{{$category->id}}">{{$category->name}}</option>
@endif
@endforeach
@endforeach
</select>
</div>
My Code in Controller:
$business_categories = BusinessCategories::join('categories', 'categories.id', '=', 'category_id')
->where('business_id', $id)
->select('categories.name as name', 'approved', 'category_id')
->get();
$categories = Categories::where('parent_id', '0')->select('id', 'name')->get();
return view('admin.businesses.edit', with([
'business_categories' => $business_categories,
'categories' => $categories,
]));
But this code displays the categories which is applied or not applied multiple times.