Laravel PHP

Laravelのクエリビルダwith内での条件追加

単純なことなのに忘れて(間違えてて)軽くハマったので戒めメモ。
Laravelのクエリビルダのwithで条件を書くとき、外から渡したい変数があるときはuse ()を付け加える。
具体例は下記。

$items = Item::with([
    'fav' => function ($query) use ($user) {
        $query->where('user_id', $user->id)->orderBy('count', 'desc');
    },
])

PHPのクロージャの仕様なのでLaravelのドキュメントには渡し方書いてないし、一瞬渡せないのかと思いました。

-Laravel, PHP

Copyright© F27P , 2021 All Rights Reserved Powered by AFFINGER5.