У меня есть класс SomeModel
. Это ребенок SomeParentModel
. SomeParentModel
- это модель EloquentORM, и она прекрасно работает. Я хочу использовать пользовательский метод get()
в SomeModel
построителе запросов.
$someModel
->where('something')
->andWhere('something')
->orderBy('field')
->get()
// ^^^
// This method must to be custom
Я пытался использовать Области применения модели , но, похоже, это не работает по умолчанию.
public function scopeGet($query)
{
$query = $this->filter($query);
dd('I`m tried :( This code not running, because i dont see this messsage');
return $query;
}
public function filter($query;)
{
if ($this->id) {
$query->where('id', $this->id);
return $query
}
if ($this->name) {
$query->where('name', 'like', "%$this->name%");
}
if ($this->phone) {
$query->whereHas('phones', function (Builder $q) {
$q->where('number', 'like', "%$this->phone%");
});
}
return $query;
}
Как я могу это сделать?