Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:frameworks:laravel:eloquent_orm

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:php:frameworks:laravel:eloquent_orm [2025/03/31 15:42] – [Obtener modelos] tempwininformatica:programacion:php:frameworks:laravel:eloquent_orm [2025/04/01 09:55] (actual) – [Eloquent ORM (Laravel)] tempwin
Línea 5: Línea 5:
 Al usar Eloquent, cada tabla de la base de datos está asociada a un model que se usa para interactuar con dicha tabla. Al usar Eloquent, cada tabla de la base de datos está asociada a un model que se usa para interactuar con dicha tabla.
  
 +  * [[https://laravel.com/docs/master/eloquent|Documentación oficial sobre Eloquent]]
 ===== Generación de clases para modelos ===== ===== Generación de clases para modelos =====
  
Línea 101: Línea 102:
     ->take(10)     ->take(10)
     ->get();     ->get();
 +</code>
 +
 +===== Insertar y actualizar modelos =====
 +
 +==== Insertar ====
 +
 +Para añadir un registro a la base de datos, creamos una instancia del modelo y establecemos los atributos del modelo. Finalmente, llamamos al método ''save'':
 +
 +<code php>
 +<?php
 +namespace App\Http\Controllers;
 +
 +use App\Models\Product;
 +use Illuminate\Http\RedirectResponse;
 +use Illuminate\Http\Request;
 +
 +class ProductController extends Controller
 +{
 +    /**
 +     * Store a new product in the database.
 +     */
 +    public function store(Request $request): RedirectResponse
 +    {
 +        // Validate the request...
 +        $product = new Product;
 +        $product->name = $request->name;
 +        $product->save();
 + 
 +        return redirect('/products');
 +    }
 +}
 +</code>
 +
 +Como alternativa, también podríamos usar el método ''create'' para añadir el registro en una única sentencia PHP:
 +
 +<code php>
 +use App\Models\Flight;
 +
 +$product = Product::create([
 +    'name' => 'Mesa camilla',
 +]);
 +</code>
 +
 +Sin embargo, para poder usar el método ''create'', necesitaremos indicar la propiedad ''fillable'' o ''guarded'' en la clase del modelo. Estas propiedades son necesarias para proteger los modelos contra vulnerabilidades por asignaciones masivas.
 +
 +==== Actualizar ====
 +
 +El método ''save'' también se puede usar para actualizar. Primero debemos recuperar el registro /modelo que queremos modificar:
 +
 +<code php>
 +use App\Models\Product;
 +
 +$product = Product::find(1);
 +
 +$product->name = 'Silla de madera';
 +
 +$product->save();
 +</code>
 +
 +==== Eliminar ====
 +
 +Para eliminar un modelo, llamamos a su método ''delete'':
 +
 +<code php>
 +use App\Models\Product;
 +
 +$product = Product::find(1);
 +
 +$product->delete();
 +</code>
 +
 +Si conocemos la clave primaria del modelo que queremos eliminar, no es necesario obtenerlo primero, bastaría con llamar a ''destroy'':
 +
 +<code php>
 +Flight::destroy(1);
 </code> </code>
 ===== Consultas SQL generadas ===== ===== Consultas SQL generadas =====
informatica/programacion/php/frameworks/laravel/eloquent_orm.1743428560.txt.gz · Última modificación: por tempwin