>  기사  >  백엔드 개발  >  Yii2는 동시에 여러 필드를 검색하는 방법을 실현합니다.

Yii2는 동시에 여러 필드를 검색하는 방법을 실현합니다.

不言
不言원래의
2018-05-08 16:30:191512검색

이 글에서는 주로 Yii2에서 여러 필드를 동시에 검색하는 방법을 소개하며, Yii2에서 여러 필드를 동시에 검색하는 데 사용되는 기능과 구체적인 사용 방법을 예시 형식으로 분석합니다.

이 글에서는 Yii2가 동시에 여러 필드를 검색하는 방법을 구현하는 예제를 설명합니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

Yii2의 검색 필드는 단락을 검색하는 데 사용할 수 있는 andFilterWhere 메서드를 사용합니다.

여러 필드를 검색하는 경우, 예를 들어 기사 제목과 기사 내용에 검색해야 할 키워드가 포함되어 있는지 검색하는 경우 둘 사이의 관계가 or이므로 orFilterWhere 방법

을 사용해야 합니다.

public function actionIndex()
{
  $key =Yii::$app->request->post("key");
  $query = Post::find()->joinWith('cate');
  $post = $query->orderBy(['post.id' => SORT_DESC])->asArray()->where(['post.status' => 1]);
  if($key){
    $post->andFilterWhere(['like', 'post.title', $key])
      ->orFilterWhere(['like', 'post.content', $key]);
  }
  $pages = new Pagination([
    'totalCount' => $post->count(),
    'defaultPageSize' => 10
  ]);
  $model = $post->offset($pages->offset)->limit($pages->limit)->all();
  return $this->render('index', [
    'model' => $model,
    'pages' => $pages,
  ]);
}

코드는 다음과 같이 sql 문을 볼 수 있습니다.

코드를 복사합니다. 코드는 다음과 같습니다.

select count(*) from `post` left join `category` on `post`.`cate_id`=`category`.`id` where ((`post`.`status`=1) and (`post`.`title` like '%key%')) or (`post`.`content` like '%key%') order by `post`.`id` desc
select `post`.* from `post` left join `category` on `post`.`cate_id`=`category`.`id` where ((`post`.`status`=1) and (`post`.`title` like '%key%')) or (`post`.`content` like '%key%') order by `post`.`id` desc limit 10

관련 권장 사항:

yii 모델

위 내용은 Yii2는 동시에 여러 필드를 검색하는 방법을 실현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.