programing

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

minecode 2022. 10. 22. 23:32
반응형

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) 지정된 컬럼에 있는 값만 컬렉션을 반환합니다.이전 버전의 Larabel에서는 이 메서드가 호출되었습니다.lists.

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


주의: 컬렉션은 강화된 배열입니다.이 기능은 어레이와 비슷하지만 문서에서 볼 수 있듯이 기능이 많이 추가되었습니다.

안타깝게도 PHP에서는 어레이를 사용할 수 있는 모든 곳에서 컬렉션 개체를 사용할 수 없습니다.예를 들어, 에서 컬렉션을 사용하는 경우foreachloop은 OK입니다.그것을 다음에 전달해 주세요.array_map그렇지 않습니다.마찬가지로 인수를 다음과 같이 입력했을 경우array, PHP에서는 컬렉션을 전달할 수 없습니다.PHP 7.1부터는 typehint가 있어 배열과 컬렉션을 모두 수용할 수 있습니다.

컬렉션에서 일반 배열을 가져오려면 해당 메서드를 호출하십시오.


1 에 의해 발생한 에러findOrFail그리고.firstOrFailmethods는 a입니다.이 예외를 직접 검출하지 않으면 Laravel은 404로 응답합니다.이것은, 대부분의 경우에 필요한 것입니다.

변경되었을 가능성이 있습니다만, findorFail 메서드는 다음의 2개의 인수를 사용할 수 있습니다.$id그리고.$columns혼합/배열 파라미터가 있습니다.두 번째 arg를 전달할 필요는 없습니다.단, 다음과 같이 동작합니다.

$post = Post::findOrFail([1,2], ['title', 'subtitle']);

다음 중 하나가$ids실패,ModelNotFoundException'모델에 대한 쿼리 결과 없음...'가 던져집니다.

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

반응형