herokuのpgsql上で公開しているLaravelのアプリにおいてorderByがうまくいかない。
前提
Laravel でウェブアプリの開発をしています。
今回は下記のリンクを参考にして、リレーションの数で orderBy をしたいなと思っています。
https://qiita.com/hareku/items/8cef12d5a9a4c18beae8
発生している問題・エラーメッセージ
具体的にはスクールの生徒数が多い順番でとってきたいというものです。
$schools = School::withCount('users')->orderBy('users_count', 'desc') -> get();
SQLSTATE[42883]: Undefined function: 7 ERROR: operator does not exist: integer = character varying
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
上記のようなエラーとヒントが表示されました。
調べてみると、 pgsql の 8.3 以降では型か何かに対して厳密になっており、それが原因のエラーではないかと考察しています。
またエラー文にも integer = character という記述があるので、型違いの処理をしてしまっているのかなと思っています。
しかし、 School::withCount('users')->orderBy('users_count', 'desc')
という使い慣れない方法で orderBy を試みているので、具体的にどのようにすれば解決できるのかわからず、質問させていただきました。
曖昧な質問になってしまっていたら大変申し訳ないのですが、何かしらアドバイスをいただければと思います。
よろしくお願いいたします。