찾다

 >  Q&A  >  본문

php - laravel에서 여러 퍼지 조건부 쿼리를 연결하는 방법은 무엇입니까?

이제 프런트 엔드에서 양식 배열을 받았다고 가정해 보겠습니다.
$input = $request->input();
에는 이메일, 이름, 나이, 성별의 4가지 값이 포함됩니다. 이제 사용자가 이메일과 이름을 입력한 경우 데이터 테이블을 쿼리해야 합니다. , 흐릿한 쿼리가 됩니다. 나이와 성별을 입력하면 정확한 쿼리가 수행됩니다.
그런데 여기서 문제는 사용자가 이 네 가지 입력 중 하나를 입력할 수 있다는 것입니다. , 또는 아마도 4. 그러면 쿼리 생성자를 사용할 때 각 값이 존재하는지 판단한 다음 생성자를 작성하는 것이 불가능합니다. 결국 퍼지 쿼리와 정확한 쿼리는 다르게 작성되며 예를 들어 이제 두 개의 필드가 있습니다. (이메일 및 이름)에는 퍼지 쿼리가 필요합니다. 퍼지 쿼리를 위한 Laravel의 생성자는 다음과 같이 작성됩니다:
->where('email', 'LIKE', $input['email'])
그럼 이메일과 이름이 프로그램에 존재하는지 확인한 다음 쿼리 생성자를 연결해야 합니까?
아이디어는 다음과 같습니다.

으아아아

코드 양이 너무 많습니다. 퍼지 쿼리에 10개의 필드가 있으면 생성자를 전혀 사용할 수 없습니다.
다음과 같은 다른 방법이 있는지 알려주실 수 있나요?

으아아아

그런 다음
->where( 'LIKE', $where)를 사용하여 한 줄에 존재할 수도 있고 존재하지 않을 수도 있는 모든 상황을 포함합니다.
인터넷에서는 다른 작성 방법을 권장합니다.
$where['email'] = ['좋아요', $input['email']] 그런데 laravel5.1을 사용할 수 없습니다.
다중 조건 퍼지 쿼리와 비퍼지 쿼리를 해결할 수 있는 좋은 방법이 있나요?

ringa_leeringa_lee2823일 전1752

모든 응답(5)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-05-16 12:04:58

    Laravel은 어디에 익명 함수를 전달할 수 있습니다.

    이 익명 기능으로 판단하실 수 있습니다.

    예를 들어 이런

    으아악

    이렇게 하면 생성자 구조를 파괴하지 않고도 적절한 판단을 내릴 수 있습니다.

    회신하다
    0
  • 某草草

    某草草2017-05-16 12:04:58

    저는 5.1을 사용해 본 적이 없지만 5.4에는 when 메소드가 있습니다. 예:

    으아악

    $name가 비어 있지 않으면 다음 함수

    가 실행된다는 의미입니다.

    5.1에도 비슷한 방법이 있는지 확인해주세요

    회신하다
    0
  • 滿天的星座

    滿天的星座2017-05-16 12:04:58

    쿼리 빌더 이야기where()方法是返回$this--연속해서 작성할 수는 있지만 연속해서 작성해야 한다는 뜻은 아닙니다!

    필드가 많은 경우 for 루프를 작성해도 괜찮나요?:

    으아악

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-16 12:04:58

    으아아아

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-05-16 12:04:58

    당신이 판단하든, 프레임워크가 판단하든, 판단은 당신이 해야 합니다. 퍼지 쿼리에 대한 필드가 10개 있는 경우 mysql이 이를 처리할 수 있나요? 대신 검색 엔진을 사용하세요

    회신하다
    0
  • 취소회신하다