updateorcreate update funcion findorfail create catch php laravel laravel-5

php - update - ¿Cuál es la diferencia entre find(), findOrFail(), first(), firstOrFail(), get(), list(), toArray()



order by eloquent (2)

  1. find($id) toma una identificación y devuelve un solo modelo. Si no existe un modelo coincidente, devuelve null .

  2. findOrFail($id) toma una identificación y devuelve un solo modelo. Si no existe un modelo coincidente, arroja un error 1 .

  3. first() devuelve el primer registro encontrado en la base de datos. Si no existe un modelo coincidente, devuelve null .

  4. firstOrFail() devuelve el primer registro encontrado en la base de datos. Si no existe un modelo coincidente, arroja un error 1 .

  5. get() devuelve una colección de modelos que coinciden con la consulta.

  6. pluck($column) devuelve una colección de solo los valores en la columna dada. En versiones anteriores de Laravel, este método se denominaba lists .

  7. toArray() convierte el modelo / colección en una simple matriz PHP.

Nota: una colección es una matriz reforzada. Funciona de manera similar a una matriz, pero tiene muchas funciones adicionales, como puede ver en los documentos .

Desafortunadamente, PHP no le permite usar un objeto de colección en todas partes donde puede usar una matriz. Por ejemplo, usar una colección en un bucle foreach está bien, pero pasarlo a array_map no lo está. Del mismo modo, si escribe un argumento como array , PHP no le permitirá pasarle una colección. Las versiones más recientes de PHP tienen el tipo de letra iterable , que se puede utilizar para aceptar tanto matrices como colecciones.

Si alguna vez desea obtener una matriz simple de una colección, llame a su método all() .

1 El error que arrojan los métodos findOrFail y firstOrFail es ModelNotFoundException . Si no detecta esta excepción, Laravel responderá con un 404 , que es lo que desea la mayor parte del tiempo.

¿Cuál es la diferencia entre estos métodos?

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

Los he estado usando y cada uno da un resultado diferente y, a veces, necesito agregar toArray() al final de get() porque mi función espera una matriz. ¿Los otros métodos no producirán matrices también?


Toda la información de @Joseph Silber es correcta y muy útil.

Quiero agregar una respuesta a la lista ()

De Laravel 5.2 El método de lista en los objetos Colección, Generador de consultas y Generador de consultas elocuentes se ha renombrado para arrancar. La firma del método sigue siendo la misma.