"when"을 사용하여 쉽게 검색할 수 있습니다(Laavel)
일반적으로 if문에 요구가 있는지 확인하고where로 조건을 정해도 전혀 문제가 없지만 실제로 Laavel의QueryBuilder에 값이 있으면 조회를 할 수 있는 편리한 방법이 있기 때문에 이번에는 소개해 드리려고 합니다.
users
표가 있다고 가정하고'사용자의 부분 일치 검색','부서 ID 검색'두 가지를 실현해 보세요!완성형 확인
public function index(Request $request)
{
$name = $request->input("name");
$departmentId = $request->input("departmentId");
$query = User::query();
// 名前で検索する
$query->when($name, function($query, $name) {
return $query->where('name', "LIKE", "%$name%");
});
// 部署IDで検索する
$query->when($departmentId, function($query, $departmentId) {
return $query->where("department_id", $departmentId);
});
return $query->get();
}
무엇이 when 방법입니까?
when 방법은 두 번째 파라미터에 대한 조회를 보내기 위해 컴파일링 함수를 쓸 수 있으며, 첫 번째 파라미터에서 두 번째 파라미터를 실행할 수 있는 컴파일링 함수를 지정할 수 있습니다.
즉 첫 번째 파라미터가 사실이라면 두 번째 파라미터로 조회를 보내는 것이다.
위에서 말한 바와 같이 이렇게 사용할 수 있다.
이 경우 name 변수가 있으면 name을 통해 LINE 검색이 수행됩니다.
$query->when($name, function($query, $name) {
return $query->where('name', "LIKE", "%$name%");
});
일반적으로if를 사용할 때는 이렇다.if ($name) {
$query->where('name', "LIKE", "%$name%");
}
둘 다 같은 일이기 때문에 이런 방법도 있습니다. 여러분은 머릿속 어딘가에서 자신이 좋아하는 방법을 사용하시기 바랍니다!끝말
이번에는 Query Builder의 when 방법을 소개합니다.
검색 기능을 만들고 싶은 장면이 많으니 이 틈을 타서 꼭 사용하세요.
그럼 안녕히 계세요!
Reference
이 문제에 관하여("when"을 사용하여 쉽게 검색할 수 있습니다(Laavel)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/naoki_oshiumi/articles/d9a571f7441783텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)