whereNameOrEmail() とは。Laravelのソースコード読み

今日はLaravelのソースコードを読んでいました。 読む時に、環境構築が面倒なので色々と工夫した点があるのですが、詳しくはconnpassのスライド or PHP カンファレンス沖縄にて。 Laravel MeetUp Okinawa 第15回@ZORKS沖縄 - connpass

それで、今日見つけた面白いメソッドを紹介します。

例えば、User table が name と email という属性を持っているとします。

それで、Laravelだと、User::whereName('hoge')->all() みたいなコードを書くと、WHERE name = "hoge" の制約があるSQLを発行してDBにアクセスしてくれます。ソースコードを読んだ結果、下記のような書き方も許容されていました。 User::whereNameOrEmail('nameHoge', 'emailHoge');

SQLWHERE name = "nameHoge" OR email = "emailHoge" です。

まあ滅多に使うことないだろうなぁと思いつつも、誰も知ってなさそうな面白いメソッドを発見できたので満足でした。

ちなみに、この処理はここらへんに書かれてあります。