

## 前提

Laravel でウェブアプリの開発をしています。  
今回は下記のリンクを参考にして、リレーションの数で orderBy をしたいなと思っています。  
<https://qiita.com/hareku/items/8cef12d5a9a4c18beae8>

* * *

## 発生している問題・エラーメッセージ

具体的にはスクールの生徒数が多い順番でとってきたいというものです。

[code]

    $schools = School::withCount('users')->orderBy('users_count', 'desc') -> get();
    
[/code]

> 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 を試みているので、具体的にどのようにすれば解決できるのかわからず、質問させていただきました。

曖昧な質問になってしまっていたら大変申し訳ないのですが、何かしらアドバイスをいただければと思います。

よろしくお願いいたします。


CC BY-SA 4.0
2018-04-23T12:00:20.777
43495
2019-05-05T00:59:30.033
2019-05-05T00:59:30.033
32986
28284
question
php heroku laravel postgresql
herokuのpgsql上で公開しているLaravelのアプリにおいてorderByがうまくいかない。