coder2 Sorun yaşamazsınız.
Car belongsToMany Feature
Feature hasMany FeatureOption
Car hasManyThrough FeatureOption
car_features tablosu
+--------+------------+
| car_id | feature_id |
+--------+------------+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
+--------+------------+
app/Pivots/CarFeature.php:
use Illuminate\Database\Eloquent\Relations\Pivot;
class CarFeature extends Pivot
{
public function car(): BelongsTo
{
return $this->belongsTo(Car::class)
}
public function feature(): BelongsTo
{
return $this->belongsTo(Feature::class)
}
}
app/Car.php:
public function options(): HasManyThrough
{
return $this->hasManyThrough(
FeatureOption::class,
CarFeature::class,
'car_id',
'id',
'id',
'feature_id'
);
}
// ?options[]=2&options[]=4&options[]=16&options[]=78
$options = $request->input('options', []); // [2, 4, 16, 78]
$cars = Car::when($options, function($query, $options) {
return $query->whereHas('options', function($query) use ($options) {
$query->whereIn('id', $options);
});
})->paginate();