일반적으로 Eloquent의 whereIn은 필드 값을 옵션이있는 배열과 비교합니다. 그 역 현장에서 여러 옵션에 대한 옵션을 비교하고자 :Laravel WhereIn 필드 자체에 여러 옵션이있는 경우
필드 '옵션 1, 옵션 2, 옵션 3'이게 가능
Model::whereIn('field', 'option1')->get();
을 포함?
일반적으로 Eloquent의 whereIn은 필드 값을 옵션이있는 배열과 비교합니다. 그 역 현장에서 여러 옵션에 대한 옵션을 비교하고자 :Laravel WhereIn 필드 자체에 여러 옵션이있는 경우
필드 '옵션 1, 옵션 2, 옵션 3'이게 가능
Model::whereIn('field', 'option1')->get();
을 포함?
당신은 당신의 쿼리 LIKE
를 사용하여 만들 수 있습니다 구문에 대한
Model::where('field', 'LIKE', '%option1%')->get();
문서가 여기에 있습니다 : 당신은 항상 option1,option2,option3,
처럼, 심지어 마지막 선택 후 쉼표 ,
를 추가하는 경우 http://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html
당신은 사용할 수 있습니다 약간의 견고한 필터 :
Model::where('field', 'LIKE', '%option1,%')->get();
시작 부분에 쉼표 그 중요한 경우 다른 분리기)는 더 나은 만들 것 : 귀하의 옵션 중 하나가 끝에 또 다른 하나와 유사한 경우 가능한 범주로 fish
및 goldfish
이있는 경우
Model::where('field', 'LIKE', '%,option1,%')->get();
그렇지 않으면 당신은 (문제가있을 수 LIKE ',fish,'
를 사용하여 은 fish
과 goldfish
과 일치하는 반면 goldfish
과 일치하지 않을 것입니다.
내가 그런 당신의 카테고리를 저장하는 것이 좋습니다 것 : /fish/goldfish/water/
를 한 다음, 데이터베이스 설계를 변경하는 것이 좋습니다 여러 값을 측정해야 할 필요가있는 경우에는 관계가 아닌 필드 전용 테이블을 할 수 있습니다
LIKE '%/yourcategory/%'
를 사용하여 필터링 여러 값으로. – AntoineB알지만, 범주를 기반으로 항목을 표시하는 것은 매우 간단한 방법입니다. 나는 이것을 위해 데이터베이스 설계를 지나치게 복잡하게 만들고 싶지 않다. – klaaz
글쎄, 당신이 당신의 자신의 문제를 기반으로 볼 수 있듯이, 그것은 좋은 해결책이 아닙니다. – AntoineB