Laravel Eloquent joinで複数条件とクエリビルダの愚痴

■条件1つの場合

->join('authors as a', 'b.author_id', '=', 'a.id')

■複数の場合

クロージャを使うことにより可能

->join('authors as a', function($join){
    $join->on('b.author_id', '=', 'a.id')
        ->where('a.price', '<', 1000)
        ->where('a.pages', '<', 100);
})

なんてことないSQLだけど、こんなにメンドイんだぁ。。。
しばらく使わないと忘れる自信ある(苦笑)

フレームワークでクエリビルダが流行りだしてから思っていることだけど
SQLよりクエリビルダ学ぶ方が学習コスト高いと思う。

パフォーマンスもよろしくないし
直接SQLを書きたいけど、それはそれでmodelの恩恵を受けれなくなるしなぁ。

直接SQLを発行して、modelに格納して返却してくれる方法があるといいのに。。。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です