最近、Laravelがバージョン5.3をリリースしました。Laravel 5.3 - orWhereで始まるクエリビルダー
次のリンクで5.2から5.3にいくつかのアップグレード手順があります。 https://laravel.com/docs/5.3/upgrade#upgrade-5.3.0
雄弁スコープは、現在のスコープ制約の主要なブールを尊重するが。たとえば、orWhere制約を使用してスコープを開始する場合、これはもはやnormalに変換されません。この機能に頼っている場合(ループ内に複数のorWhere制約を追加するなど)、最初の条件がブール論理問題を回避する通常の条件であることを確認する必要があります。
範囲がwhere拘束で始まる場合は、何も処理する必要はありません。
これは物事を少し難しくするように見えますが、アップグレードでは制限が加えられるだけであることを覚えておいてください。
私たちは内部パッケージを持っており、コードをシンプルかつ可能な限りきれいに保つために、orWhere()で問合せを開始する部分があり、これを再帰的な内部のクロージャの概念と同様に使用します方法。ご存知のように、再帰的な方法は、短く簡単にするのが最善です。
今アップグレードノートによると、それがために必ず誰もがこの動作が削除されている理由に理由を知っていれば私は思っていたLaravel 5.3
に失敗しますか?
ありがとうございます!
更新:
私はLaravel 5.3上で、当社のシステムを移行しました。私はこれがEloquent Builderでのみ影響を受け、Query Builder(以前は "Fluent Builder")では影響を受けていないことを確認します。
Eloquent \ Builderだけでもコミットされています(これは大変です)。 https://github.com/laravel/framework/issues/14829
とにかく、安全な側にするために、それに応じて調整することをおすすめします。それは私たちがしたことですが、今日のように私たちのコードを壊さなかったことは分かっています。
私はこれがより明確になると思います。私はあなたがそれが常に真実である最初のものを使うことができると思って、あなたのorwheresと鎖をつけて同じ行動をとることができると思います。 – Hammerbot
ええ、私はそれをすることができると理解しています。ちょうどそれはいくつかの余分な行を追加します(私はそれがたくさんではないことは分かっていますが)。しかし、私はその柔軟性を取り除くポイントが何であるか疑問に思っていただけです。このような大きなコミュニティに直面しているフレームワークのために行動を取り除くのは厄介です。この動作は、CodeIgniterのアクティブレコードでも機能します。私はそれがCIのようなものだと信じていますが、Doctrineについてはわかりません。 –