차이점은 무엇입니까? cakephp 3에 있습니다. 우리가 사용하는 이유는 무엇입니까 cakephp 3.cakephp에서 get 또는 find의 차이점은 무엇입니까?
답변
은 일반적으로 기본 키로 단일 항목을 가져 오는 데 사용됩니다.
$this->Models->get($id);//here $id is your tables primary key
에서 우리는 데이터를 미세을 찾을 수 있습니다.
$this->Models->find('all');//get all the data
$this->Models->find('all')->first(); //get the first row
모든 데이터뿐만 아니라 첫 번째 데이터를 모두 찾을 수 있습니다. 당신은 DB 원본에서 필터링 한 후 데이터를 검색 원하는 다음 조건을 통과 할 수 find()
방법을 사용하는 경우 여기에서 우리는 또한 넣을 수 있습니다 조건
더 많은 정보를 원하시면
http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html
이 링크를 따르십시오. find('first')
또는 find('all')->first()
이 동일하게 동작합니다.
하지만
get($id)
은 테이블의 기본 키 필드에 조건을 적용한다. 기본 키의 조건으로 인해 하나의 레코드에 대한 결과 만 제공한다는 의미입니다.
get()
메서드를 사용하는 경우 레코드가 db 소스에서 발견되지 않으면 CakePHP는 NOT Found 예외를 throw합니다. 이렇게하면 NOT FOUND로 응답 할 때 매우 유용합니다 - 404 예를 들어 프로필 페이지, 블로그 세부 정보 페이지 ... 예 :
find()
은 Query 개체를 생성하는 테이블 인스턴스에서 호출 할 수 있으며이를 반환하면 다음과 같은 다른 메서드를 계속 연결할 수 있습니다. where()
, ->select()
및 쿼리 개체는 게으른, 발견 또는 전혀 기록하는 경우 예외를 찾을 수 없습니다 던졌습니다 경우 레코드를 반환합니다 all()
, toArray()
, first()
, firstOrFail()
등, 여기 https://book.cakephp.org/3.0/en/orm/query-builder.html
get($primaryKey, $options = [])
반면 더 설명이 필요하지 않은 경우 실행되지 않습니다 내부적으로 쿼리와 호출을 구성합니다. firstOrFail()
연산이 결과를 찾지 못하면 예외를 throw 함 – arilia
@arilia 예이 예외를 catch해야합니다. – sradha