関数内に...やりました。なんだか長いんだよなーって気になる方にはこちら。Illuminate\Database\Query\JoinClause;をコントローラに追加して...スッキリしました。クラスを返しているのはこちら。\Illuminate\Database\Query\Builderクラスのjoinメソッド内で、最初のif文の中でnewされてますね。$join);の2つめの引数として渡され、function($join)の引数になるわけです。これでお手軽にコード補完ができました。2016.02.03悪いプログラムを書かないようにするには?「良いプログラムとは?」と聞かれると結構千差万別ですが、悪いプログラムはえてして共通してます。その悪いプログラムを書かないようにするには、「適切な名前を付ける」ことが簡単でおススメです。深く考えていくと難しいのですが、コード上ですぐできるという意味では非常にお手軽で効果も高い。悪い例checkとはいったいなんなのか?checkとは値を変えることも含む言葉なのか?そもそも$dataとは何を投げればいいのか?困りものです。「この関数・クラスはそもそも何をやっているのか?」を明示しましょう。名前を明示すると「ちょっとこの関数でやりすぎじゃないか?」と感じますね。現状を隠さずはっきりと見つめることで問題が浮かび上がってきます。掃除やダイエットと同じです。何が必要なのかわかってきましたね。実はclient_id以外はいらなかったのです。名前もコードも呼び出すときに必要あれば追加すれば良かったのです。チェックする人が勝手に直したら隠蔽です。これで後からプロジェクトに参加する人も楽しく働けましたとさ。