반응형
라 라벨에서 Eloquent ORM을 사용하여 LIKE를 사용하여 데이터베이스 검색 수행
Eloquent의 활성 레코드 빌딩을 사용하여 검색 쿼리를 작성하고 싶지만 LIKE 검색이 될 것입니다. 나는를 발견 User::find($term)
하거나 User::find(1)
, 그러나 이것은 같은 문을 생성하지 않습니다. 나는 직접적인 대답을 찾고 있지는 않지만 누군가가 적어도 나에게 방향을 알려줄 수 있다면 그것은 좋을 것입니다!
다음 구문으로 LIKE를 사용하여 데이터베이스 찾기를 수행 할 수 있습니다.
Model::where('column', 'LIKE', '%value%')->get();
LIKE를 자주 사용해야하는 경우 문제를 약간 단순화 할 수 있습니다. Eloquent ORM을 상속하는 모델에서 ()와 같은 사용자 지정 메서드를 만들 수 있습니다.
public function scopeLike($query, $field, $value){
return $query->where($field, 'LIKE', "%$value%");
}
따라서 다음과 같은 방식으로이 방법을 사용할 수 있습니다.
User::like('name', 'Tomas')->get();
참고로 연산자 목록 ( like 및 기타 모두 포함)은 코드에 있습니다.
/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php
protected $operators = array(
'=', '<', '>', '<=', '>=', '<>', '!=',
'like', 'not like', 'between', 'ilike',
'&', '|', '^', '<<', '>>',
'rlike', 'regexp', 'not regexp',
);
부인 성명:
Joel Larson의 대답이 맞습니다. 내 찬성 투표를 받았습니다.
나는이 대답은 설득력 ORM을 통해 (사용 가능한 무엇에 더 많은 빛을 비춰 바라고 있어요 권리 직접에서 포인트 명 ). 문서에 대한 링크가 훨씬 낫지 만 그 링크는 그 자체로 이해하기 어려운 것으로 입증되었습니다.
작은 따옴표 대신 큰 따옴표를 사용하십시오.
where('customer.name', 'LIKE', "%$findcustomer%")
아래는 내 코드입니다.
public function searchCustomer($findcustomer)
{
$customer = DB::table('customer')
->where('customer.name', 'LIKE', "%$findcustomer%")
->orWhere('customer.phone', 'LIKE', "%$findcustomer%")
->get();
return View::make("your view here");
}
나처럼 큰 따옴표가 마음에 들지 않으면 작은 따옴표로 작동합니다.
$value = Input::get('q');
$books = Book::where('name', 'LIKE', '%' . $value . '%')->limit(25)->get();
return view('pages/search/index', compact('books'));
반응형
'code' 카테고리의 다른 글
반사를 사용하지 않고 객체가 배열인지 확인하는 방법은 무엇입니까? (0) | 2020.09.04 |
---|---|
인증서를 얻으려고 할 때 오류 발생 : 지정된 항목을 키 체인에서 찾을 수 없습니다. (0) | 2020.09.04 |
SQLite를 사용하는 Android의 외래 키 제약? (0) | 2020.09.04 |
curl이 프록시를 무시하도록하려면 어떻게해야합니까? (0) | 2020.09.04 |
NSNotificationCenter와 동등한 Android (0) | 2020.09.04 |