1

我有自定义查询,我尝试在其中获得 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 阅读此问题评论并尝试过但收到此错误

4

1 回答 1

2

你在这一行犯了一个错误:

 $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);
于 2020-03-13T11:12:11.747 回答