yii2 activerecord查询中修改查询参数,变任意匹配为前方匹配
2021-02-12 10:04:20
控制器:
public function getQuery($where) {
// var_dump($where);exit;
$schoolid = \Yii::$app->admin->identity->schoolid;
$query = $this->modelClass::find()
->where($where)
->andwhere(['SCHOOLNO'=>$schoolid])
->asArray();
$query = $this->FixLikeQuery($query,'TITLE');
$query = $this->FixLikeQuery($query,'ISBN');
// var_dump($query);exit;
return $query;
}
// 修复任意匹配为前方匹配
public function FixLikeQuery($query,$Field)
{
$where = $query->where;
foreach ($where as $key => $val) {
if( is_array($val) )
{
foreach( $val as $value)
{
if($value==$Field)//如果字段匹配成功TITLE
{
$where[$key][2]=$where[$key][2].'%';
$where[$key][3]=false;
}
}
}
// else echo $key.'=>'.$val.'|';
}
$query->where = $where;
return $query;
}
public function getQuery($where) {
// var_dump($where);exit;
$schoolid = \Yii::$app->admin->identity->schoolid;
$query = $this->modelClass::find()
->where($where)
->andwhere(['SCHOOLNO'=>$schoolid])
->asArray();
$query = $this->FixLikeQuery($query,'TITLE');
$query = $this->FixLikeQuery($query,'ISBN');
// var_dump($query);exit;
return $query;
}
// 修复任意匹配为前方匹配
public function FixLikeQuery($query,$Field)
{
$where = $query->where;
foreach ($where as $key => $val) {
if( is_array($val) )
{
foreach( $val as $value)
{
if($value==$Field)//如果字段匹配成功TITLE
{
$where[$key][2]=$where[$key][2].'%';
$where[$key][3]=false;
}
}
}
// else echo $key.'=>'.$val.'|';
}
$query->where = $where;
return $query;
}