/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  * @param string $formName the form name to be used for loading the data into the model.
  *
  * @return ActiveDataProvider
  */
 public function search($params, $formName = null)
 {
     $query = DpAdminMenuUrlRule::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params, $formName);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['rule_id' => $this->rule_id, 'url_id' => $this->url_id, 'status' => $this->status]);
     $query->andFilterWhere(['like', 'param_name', $this->param_name])->andFilterWhere(['like', 'rule', $this->rule])->andFilterWhere(['like', 'note', $this->note]);
     return $dataProvider;
 }
 /**
  * 更新状态
  *
  * @return array
  */
 public function actionUpdateStatus()
 {
     $ids = \Yii::$app->request->post('ids');
     $status = intval(\Yii::$app->request->post('status'));
     if ($status != 0) {
         $status = 1;
     }
     foreach (StringHelper::explode($ids, ',', true, true) as $id) {
         $obj = DpAdminMenuUrlRule::find()->findByRuleId($id)->one();
         if ($obj) {
             $obj->status = $status;
             $obj->save();
         }
     }
     return $this->renderSuccess('状态更新成功');
 }
 /**
  * 获取指定菜单id数组url规则记录
  *
  * @param array $menuIdArr 菜单id数组
  * @return array
  */
 public static function getUrlRuleByMenuIdArr($menuIdArr)
 {
     $urlRuls = [];
     $urlIdArr = DpAdminMenuUrlRelation::getUrlIdArrByMenuIdArr($menuIdArr);
     foreach ($urlIdArr as $urlId) {
         $url = static::find()->findByUrlId($urlId)->active()->asArray()->one();
         if ($url) {
             $urlRuleAll = DpAdminMenuUrlRule::find()->active()->findByUrlId($urlId)->all();
             $rule = [];
             foreach ($urlRuleAll as $item) {
                 $rule[$item['param_name']] = $item['rule'];
             }
             $urlRuls[] = ['route' => $url['route'], 'method' => $url['method'], 'enable_rule' => $url['enable_rule'], 'rule' => $rule];
         }
     }
     return $urlRuls;
 }