Development Tip

find (), findOrFail (), first (), firstOrFail (), get (), list (), toArray ()의 차이점은 무엇입니까?

yourdevel 2020. 11. 26. 20:00
반응형

find (), findOrFail (), first (), firstOrFail (), get (), list (), toArray ()의 차이점은 무엇입니까?


이 방법의 차이점은 무엇입니까?

  1. find()
  2. findOrFail()
  3. first()
  4. firstOrFail()
  5. get()
  6. list()
  7. toArray()

나는 그것들을 사용해 왔고 각각 다른 결과를 제공하며 때로는 내 함수가 배열을 기대하기 때문에 toArray()끝에 추가해야합니다 get(). 다른 방법도 배열을 생성하지 않습니까?


  1. find($id)ID를 취하고 단일 모델을 반환합니다. 일치하는 모델이 없으면를 반환합니다 null.

  2. findOrFail($id)ID를 취하고 단일 모델을 반환합니다. 일치하는 모델이 없으면 오류 1 이 발생 합니다.

  3. first()데이터베이스에서 찾은 첫 번째 레코드를 반환합니다. 일치하는 모델이 없으면를 반환합니다 null.

  4. firstOrFail()데이터베이스에서 찾은 첫 번째 레코드를 반환합니다. 일치하는 모델이 없으면 오류 1 이 발생 합니다.

  5. get() 쿼리와 일치하는 모델 컬렉션을 반환합니다.

  6. pluck($column)주어진 열에있는 값의 컬렉션 만 반환합니다. 이전 버전의 라 라벨에서는이 메서드를 lists.

  7. toArray() 모델 / 컬렉션을 간단한 PHP 배열로 변환합니다.


참고 : 컬렉션 은 강화 된 배열입니다. 배열과 유사하게 작동하지만 문서 에서 볼 수 있듯이 많은 추가 기능이 있습니다 .

불행히도 PHP는 배열을 사용할 수있는 모든 곳에서 컬렉션 객체를 사용하도록 허용하지 않습니다. 예를 들어, foreach루프 에서 컬렉션을 사용하는 것은 괜찮습니다 array_map. 마찬가지로 인수를으로 입력 힌트하면 arrayPHP는 컬렉션을 전달할 수 없습니다. 최신 버전의 PHP에는 iterable배열과 컬렉션을 모두 허용하는 데 사용할 수있는 typehint가 있습니다.

컬렉션에서 일반 배열을 얻으려면 해당 all()메서드를 호출하십시오 .


1findOrFailfirstOrFail메서드 에서 발생한 오류 ModelNotFoundException. 이 예외를 직접 포착하지 않으면 Laravel은 대부분의 시간을 원하는 404로 응답 합니다.


@Joseph Silber의 모든 정보는 정확하고 매우 유용합니다.

list ()에 대한 답변을 추가하고 싶습니다.

Laravel 5.2에서 Collection, 쿼리 빌더 및 Eloquent 쿼리 빌더 객체의 list 메소드는 pluck으로 이름이 변경되었습니다. 메서드 서명은 동일하게 유지됩니다.

참고 URL : https://stackoverflow.com/questions/33027047/what-is-the-difference-between-find-findorfail-first-firstorfail-get

반응형