Laravel красноречивая ошибка предела загрузки - PullRequest
1 голос
/ 13 марта 2020

У меня есть пользовательский запрос, где я пытаюсь получить пользователей профессий с 5 лимитами

Код

$professions = Profession::whereHas("users", function($q) use($query) {
    $q->where("professions.name", "like", "%$query%");
})->withCount('users')->with('users', function($q) {
    $q->take(5);
})->paginate(10);

Затем получаю сообщение об ошибке:

ErrorException: mb_strpos () ожидает, что параметр 1 будет строкой, объект задан

Почему я получаю эту ошибку и как можно исправить эту ошибку?

Я читал это комментарий к выпуску из github и попытался, но получить эту ошибку

1 Ответ

2 голосов
/ 13 марта 2020

Вы допустили ошибку в этой строке:

 $q->where("professions.name", "like", "%".$query."%");

Вам необходимо объединить переменную. Вы получаете эту ошибку, потому что with() принимает ассоциативный массив для ограничения активных нагрузок. Попробуйте:

$professions = Profession::whereHas("users", function($q) use($query) {
    $q->where("professions.name", "like", "%".$query."%");
})->withCount('users')->with(['users' => function($q) {
    $q->take(5);
}])->paginate(10);
...