laravel mb_strpos () ожидает, что параметр 1 будет строкой, объект задан - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть этот оператор в моей функции поиска

if(!empty($project) && !empty($type)){
            $result = Project::where('id', 'LIKE', "%{$project}%")->with(['type', function ($query) use ($type) {
                $query->where('id', 'like', $type);
            }])->get();
}

он возвращает

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

Logi c

  1. $project = project.id
  2. $type = type.id
  3. Если $project and $ type оба имеют значения затем получить проект, где id = $ project
  4. Затем загрузить type в этот проект , где id = $ type

- это как мы говорим types, where types.project_id = projects.id and where types.id = $type, но с большой нагрузкой вместо запроса.

Есть идеи?

1 Ответ

3 голосов
/ 17 февраля 2020

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

if(!empty($project) && !empty($type)){
            $result = Project::where('id', 'LIKE', "%{$project}%")->with(['type'=> function ($query) use ($type) {
                $query->where('id', 'like', $type);
            }])->get();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...