> 백엔드 개발 > PHP 튜토리얼 > Laravel5는 퍼지 매칭 기능을 구현합니다.

Laravel5는 퍼지 매칭 기능을 구현합니다.

小云云
풀어 주다: 2023-03-22 09:32:01
원래의
2351명이 탐색했습니다.

이 글은 주로 Laravel5에서 퍼지 매칭 및 다중 조건 쿼리 기능을 구현하는 방법을 소개하고, Laravel5 다중 조건 퍼지 쿼리 및 관련 패키징 작업 기술을 예제 형식으로 분석하여 모든 분들께 도움이 되기를 바랍니다.

방법 1. ORM 모드


public function ReportAccurate($data)
{
 if(is_array($data))
 {
   $where = $this->whereAll($data);
   return $where;
 }
 else
 {
   return false;
 }
}
/*多条件模糊*/
public function whereAll($data)
{
  $query = new ReportMainpage();
  $results = $query->where(function ($query) use ($data) {
    $data['report_first_received_date'] && $query->where('report_first_received_date', 'like', '%' . $data['report_first_received_date'] . '%');
    $data['report_drug_safety_date'] && $query->where('report_drug_safety_date', 'like', '%' . $data['report_drug_safety_date'] . '%');
    $data['aecountry_id'] && $query->where('aecountry_id', $data['aecountry_id']);
    $data['received_fromid_id'] && $query->where('received_fromid_id', $data['received_fromid_id']);
    $data['research_id'] && $query->where('research_id', 'like', '%' . $data['research_id'] . '%');
    $data['center_number'] && $query->where('center_number', 'like', '%' . $data['center_number'] . '%');
  })->get();
  return $results;
}
로그인 후 복사

위의 $data는 프론트 엔드에서 전달된 배열이고 캡슐화와 스플라이싱을 사용하여 퍼지 또는 정확한 다중 조건 검색을 수행합니다

나쁜 부분은 코드가 견고하지 않고 도움이 되지 않습니다. 유지 관리

방법 2. 마스터 캡슐화 방법에 사용되는 지식은 저장소 창고


$fields = ['id', 'report_id', 'report_identify', 'report_first_received_date', 'drug_name', 'first_event_term', 'case_serious', 'standard_of_seriousness', 'case_causality', 'received_from_id', 'task_user_name', 'organize_role_name', 'task_countdown', 'report_countdown'];
/*查询的字段*/
$searchFields = [
  'report_identify' => 'like',
  'drug_name' => 'like',
  'event_term' => 'like',
  'organize_role_id' => '=',
  'case_causality' => '=',
  'report_type' => '=',
  'task_user_id' => '=',
  'status' => '=',
];
/*获取查询条件*/
$where = $this->searchArray($searchFields);
/*获取数据*/
$this->reportTaskRepo->pushCriteria(new OrderBySortCriteria('asc', 'task_countdown'));
$data = $this->reportTaskRepo->findWhere($where, $fields);
//在Trait里封装
/**
 * 获取请求中的参数的值
 * @param array $fields [description]
 * @return [type]     [description]
 */
public function searchArray($fields=[])
{
  $results = [];
  if (is_array($fields)) {
   foreach($fields as $field => $operator) {
     if(request()->has($field) && $value = $this->checkParam($field, '', false)) {
      $results[$field] = [$field, $operator, "%{$value}%"];
     }
   }
  }
  return $results;
}
로그인 후 복사

관련 권장 사항:

퍼지 일치 기능의 예 정규식을 사용하는 문자

JS 모방 Baidu 자동 드롭다운 상자 퍼지 일치 프롬프트

javascript 정규식 퍼지 일치 IP 주소 함수 예제

위 내용은 Laravel5는 퍼지 매칭 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿