cakephpのcontain()内でのクロージャに use()を使って引数を渡す。

js感覚でvarスコープの変数を渡そうとすると渡せない。
use ($supplier_id)で渡す。

$supplier_id = 2;//これを渡したい。
$query = $this->Products->find();
    $query
        ->contain([
            'Suppliers' => function($q) use ($supplier_id){
                return $q->where(['Suppliers.id'=>$supplier_id]);
            }
        ]);