yii2 关联查询用use加载外界参数

在使用yii2with、joinwith等关联查询的时候,我发现没有办法将外界的参数进行传递进去,例如:php

$province_id=15;
$customers=Parks::find()->where(['id'=>2])
          ->width(['house'=>function($query){
           $query->andWhere(['province_id'=>$province_id]);
          }
          ])->asArray()->all();

这时候就会报错没有定义$province_id这个参数。这样的状况下咱们使用use来加载外界参数:例如yii2

$province_id=15;
$customers=Parks::find()->where(['id'=>2])
          ->width(['house'=>function($query) use($province_id){
           $query->andWhere(['province_id'=>$province_id]);
          }
          ])->asArray()->all();

这样就能够加载。
为何这样用呢
php 5.3新增的闭包语法介绍function() use() {}
闭包: 内部函数使用了外部函数中定义的变量。
在PHP新开放的闭包语法中, 咱们就是用use来使用闭包外部定义的变量的。闭包

相关资料
php 5.3新增的闭包语法介绍function() use() {}yii

相关文章
相关标签/搜索