두 가지 방법이 있습니다. 아래에서 두 가지 방법을 간략하게 설명합니다.
1) 루프백 전문 검색을 수행하려면 Regex 검색을 수행하는 사용자 지정 원격 메소드가 필요합니다. 정규 표현식 섹션에
https://loopback.io/doc/en/lb3/Where-filter.html
점프.
이것은 LB에서 텍스트 검색을하는 가장 좋은 방법이었습니다.
이
내 필터
const AdminFilter = (props) => {
return (<Filter {...props}>
<TextInput label="Name Or Email" source="userNameOrEmailId" alwaysOn />
</Filter>)
}
이이 API 측에 다음과 같은 형식의 필터를 생성합니다.
const findUsersByNameOrEmail = (filter) => {
const regex = '^' + filter.where.userNameOrEmailId
filter.where.or = [{name: {'regexp': regex}}, {email: {'regexp': regex}}]
delete filter.where.userNameOrEmailId
return findAllUsersByFilter(filter)
}
const findAllUsersByFilter = (filter) => {
return AppUser.find(filter)
}
여기 약간의 해키는 위의 userNameOrEmail과 같은 필터에 더미 소스를 할당하는 것 같습니다. 그것은 실제로 모든 기본 우려를 무시하지 않습니다. 적절한 필터를 설정하는 데 도움이됩니다.
2) 위의 함수 findUsersByNameOrEmail이 사용자 정의 Rest Wrapper 또는 자신의 Rest Client에서 수행중인 필터 구성과 같은 작업을 수행하여 동일한 결과를 얻을 수도 있습니다. 나머지는 클라이언트 또는 래퍼입니다.
if (type === 'GET_LIST' && resource === 'appUser') {
const regex = '^' + params.userNameOrEmailId
const url = `URLroot/filter={where: [or: {name: {'regexp': regex}}, {email: {'regexp': regex}}]
options.method = 'GET';
return handleRequestAndResponse(url, options)
}
아이디어는 귀하의 API 호출을 가로 채어 미리 필요한 것을 고치는 것입니다.
하지만 어떻게 관리 - 온 - 나머지 정규식을 사용할 수 있습니까? –
Rest On의 유일한 작업은 문자열을 API에 전달하는 것입니다. 해당 문자열을 가져 와서 RegexSearch에 전달하는 것은 사용자 지정 원격 메서드입니다. 더 자세한 내용으로 내 대답을 편집 할 것입니다. –
그냥 참고 그냥 텍스트/ID 기반의 정규식 검색 및 접근 방식을 위에서 설명한 두 잘 구현 된 구현해야했습니다. 원격 메소드를 사용하지 않으려면 시도해 볼 수 있습니다. –