Метод whereValid в Laravel 5.7

172
24 января 2019, 07:00

Изучаю Laravel. Наткнулся на метод whereValid, который используется в этом коде:

/**
 * Get comments paginate.
 *
 * @param  int  $nbrPages
 * @param  array  $parameters
 * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
 */
public function getAll($nbrPages, $parameters)
{
    return Comment::with ([
            'ingoing',
            'user',
            'post' => function ($query) { $query->withCount('comments'); }
        ])
        ->latest()
        ->when ($parameters['new'], function ($query) {
            $query->has ('ingoing');
        })->when ($parameters['valid'], function ($query) {
            $query->whereHas('user', function ($query) {
                $query->whereValid(true);
            });
        })->paginate($nbrPages);
}

Не понимаю, какую задачу он выполняет? Не могу нигде найти хотя бы слово о нём. Буду благодарен за любое разъяснение.

Answer 1

Это "фишка" Laravel такая. В название метода включать имя переменной с большой буквы. Т.е:

$query->whereValid(true);

означает

$query->where('valid', true);
Answer 2

Если не секрет, какой репозиторий рассматриваете? А так, судя по всему в модели User (если точнее, то у Модели Comment есть связанная модель, отношением user(), отсюда можно предположить и название модели) есть метод

function scopeWhereValid(){
   ...
}

Именно он вызывается в данном случае.

READ ALSO
Как написать такой цикл?

Как написать такой цикл?

Как написать такой цикл, чтоб он заменял у строки последний элемент на 1? То есть, к примеру мы имеем переменную $url = 'url,com/films?page=' В конце этой...

172
Ошибки в подключении к базе данных.

Ошибки в подключении к базе данных.

Файл dbphp содержит ошибку или ошибки

175
Insert into в цикле pdo

Insert into в цикле pdo

Пытаюсь в цикле занести данные в бдТо есть я отправляю запрос в цикле

164
Как в yii2 наиболее быстро получить выборку 100 записей с пагинацией?

Как в yii2 наиболее быстро получить выборку 100 записей с пагинацией?

В БД есть болеее 5 000 000 записейИнформации в них не много - фильтрация идёт по одному полю, которое является индексом

168