tutorial proyectos proyecto primer hechos ejemplos descargar crear laravel laravel-4 eloquent

proyectos - laravel tutorial



Primero o crear (3)

Lo sé usando:

User::firstOrCreate(array(''name'' => $input[''name''], ''email'' => $input[''email''], ''password'' => $input[''password'']));

Verifica si el usuario existe primero, si no lo crea, pero ¿cómo lo verifica? ¿Comprueba todos los parámetros provistos o hay una manera de especificar un parámetro específico, por ejemplo, puedo verificar que exista la dirección de correo electrónico, y no el nombre, ya que dos usuarios pueden tener el mismo nombre, pero su dirección de correo electrónico debe ser único.


La respuesta anterior es obsoleta. Es posible lograr en un solo paso desde Laravel 5.3, firstOrCreate ahora tiene values segundo parámetro, que se está utilizando para el nuevo registro, pero no para la búsqueda

$user = User::firstOrCreate([ ''email'' => ''[email protected]'' ], [ ''firstName'' => ''Taylor'', ''lastName'' => ''Otwell'' ]);


Una actualización:

A partir de Laravel 5.3, hacer esto en un solo paso es posible; el método firstOrCreate ahora acepta una segunda matriz opcional como argumento.

El primer argumento de matriz es la matriz en la que coinciden los campos / valores, y la segunda matriz es los campos adicionales para usar en la creación del modelo si no se encuentra coincidencia al hacer coincidir los campos / valores en la primera matriz:

Ver documentación


firstOrCreate() comprueba que todos los argumentos estén presentes antes de finds una coincidencia. Si no todos los argumentos coinciden, se creará una nueva instancia del modelo.

Si solo desea verificar un campo específico, utilice firstOrCreate([''field_name'' => ''value'']) con solo un elemento en la matriz. Esto devolverá el primer elemento que coincida, o creará uno nuevo si no se encuentran coincidencias.

La diferencia entre firstOrCreate() y firstOrNew() :

  • firstOrCreate() creará automáticamente una nueva entrada en la base de datos si no se encuentra una coincidencia. De lo contrario, le dará el artículo coincidente.
  • firstOrNew() le dará una nueva instancia de modelo para trabajar si no se encontró una coincidencia, pero solo se guardará en la base de datos cuando lo haga explícitamente (llamando a save() en el modelo). De lo contrario, le dará el artículo coincidente.

Elegir entre uno u otro depende de lo que quieras hacer. Si desea modificar la instancia del modelo antes de que se guarde por primera vez (por ejemplo, establecer un name o algún campo obligatorio), debe usar firstOrNew() . Si puede usar los argumentos para crear inmediatamente una nueva instancia de modelo en la base de datos sin modificarla, puede usar firstOrCreate() .