Отношения, которые вы ищете, это hasManyThrough
https://laravel.com/docs/7.x/eloquent-relationships#has через многие
Модал пользователя
public function items()
{
return $this->hasManyThrough(Item::class, Bucket::class);
}
То, как вы хотите использовать, невозможно достичь, я думаю.
Возможное использование
$user->items()->where('price', x);
, если вы определяете пользовательские области действия
Элемент Модальный
public function scopeWherePrice($query, $value)
{
return $query->where('price', $value);
}
Использование
$user->items()->wherePrice(x);
РЕДАКТИРОВАТЬ
Если вы действительно хотите написать код, подобный $user->items(x)
, вы можете определить метод для User Modal
.
. Обратите внимание, что это не отношение, а просто другой метод, извлекающий результат.
Пользовательский модал
public function items($price)
{
return this->items()->where('price', $price)->get();
}