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 に答える