laravel

Tutorial de ORM elocuente de Laravel

Tutorial de ORM elocuente de Laravel
Eloquent ORM (Object Relation Mapper) es fácil de usar para usuarios que saben cómo usar objetos en PHP. El ORM es una característica importante del marco de Laravel, considerada una característica poderosa y costosa de Laravel. El ORM trabaja con objetos de la base de datos y se utiliza para establecer relaciones con las tablas de la base de datos. Cada tabla de la base de datos está mapeada con un modelo elocuente particular. El objeto modelo contiene varios métodos para recuperar y actualizar datos de la tabla de la base de datos. Eloquent ORM se puede usar con múltiples bases de datos implementando ActiveMethod. Esta función simplifica las tareas relacionadas con la base de datos, como la definición de relaciones, al definir las tablas de la base de datos. Este tutorial explica cómo aplicar Laravel Eloquent ORM en sus proyectos de Laravel.

Prerrequisitos

Antes de comenzar este tutorial, debe realizar las siguientes tareas:

  1. Instale una nueva copia del proyecto Laravel
  2. Realizar la conexión a la base de datos

Crear tablas

Para completar los pasos del tutorial, debe crear dos tablas en la base de datos. Estas son la tabla del fabricante y la tabla de productos. La relación entre estas dos tablas será de una a muchas, respectivamente. Ejecute el siguiente comando para crear el archivo de migración para crear la estructura de fabricantes mesa.

$ php artisan make: migración create_manufacturer_table

Abra el archivo de migración desde base de datos \ migración carpeta y modificar el arriba() método con el siguiente código. La tabla contendrá seis campos: ID, nombre, dirección, teléfono, created_at y updated_at.

función pública arriba ()

Schema :: create ('fabricantes', function (Blueprint $ table)
$ tabla-> id ();
$ tabla-> cadena ('nombre') -> único ();
$ tabla-> texto ('dirección');
$ tabla-> cadena ('teléfono');
$ tabla-> marcas de tiempo ();
);

Ejecute el siguiente comando para crear un archivo de migración para crear las estructuras del productos mesa.

$ php artisan make: migración create_product_table

Abra el archivo de migración del base de datos \ migración carpeta y modificar el arriba() método con el siguiente código. La tabla contendrá siete campos: ID, nombre, precio, fabricante_id, created_at y updated_at. Aquí, manufacturing_id es una clave externa para el productos mesa.

función pública arriba ()

Schema :: create ('productos', function (Blueprint $ table)
$ tabla-> id ();
$ tabla-> cadena ('nombre') -> único ();
$ tabla-> decimal ('precio', 10, 2);
$ tabla-> bigInteger ('fabricante_id') -> unsigned ();
$ tabla-> extranjero ('fabricante_id') -> referencias ('id') -> on ('fabricantes');
$ tabla-> marcas de tiempo ();
);

Ejecute el siguiente comando de migración para crear las tablas en la base de datos.

$ php migrar artesanal

Crear modelos

También debe crear dos modelos, llamados Fabricante y Producto, para las tablas creadas previamente. Ejecute el siguiente comando para crear el Fabricante modelo.

$ php artisan make: model Manufacturer

Abra el modelo de la aplicación carpeta y modifique el código con el siguiente código. $ rellenable se utiliza para definir los campos obligatorios de la fabricar mesa. La productos () El método se utiliza para establecer el tipo de relación con el productos mesa.

Aplicación de espacio de nombres;
use Illuminate \ Database \ Eloquent \ Model;
clase Fabricante amplía Modelo

protegido $ rellenable = [
'nombre', 'dirección', 'teléfono',
];
productos de función pública ()

return $ this-> hasMany ('Aplicación \ Producto');

Ejecute el siguiente comando para crear el Producto modelo.

Abra el modelo de la aplicación carpeta y modifique el código con el siguiente código. $ rellenable se utiliza para definir los campos obligatorios de la productos mesa. La fabricantes () El método se utiliza para establecer el tipo de relación con el artículos mesa.

$ php artisan make: modelo Producto
Aplicación de espacio de nombres;
use Illuminate \ Database \ Eloquent \ Model;
clase Producto amplía Modelo

protegido $ rellenable = [
'nombre', 'precio', 'fabricante_id'
];
fabricantes de funciones públicas ()

return $ esto-> pertenece a ('Aplicación \ Fabricante');

Crear controladores

Ejecute los siguientes comandos para crear ManuController y ProductController.

$ php artisan make: controlador ManuController
$ php artisan make: controller ProductController

Operaciones CRUD usando Eloquent ORM

Las operaciones CRUD se muestran a continuación agregando primero métodos a estos dos controladores.

Insertar datos

Tabla del fabricante

Añade el Fabricante modelo en la parte superior de la ManuController. A continuación, agregue el siguiente código dentro del ManuController modelo para insertar dos registros en el artículos mesa.

función pública create_data ()

Fabricante :: crear ([
'name' => 'ABC Trade',
'dirección' => '34, Mirpur, Dhaka ',
'teléfono' => '01878562323'
]);
Fabricante :: crear ([
'name' => 'Rahim Afroze',
'dirección' => '123, Dhanmondi, Dhaka',
'teléfono' => '01878562900'
]);
echo "Datos del fabricante insertados";

Agregue la siguiente ruta en el rutas \ web.php archivo para ejecutar el create_data () método.

Route :: get ('manu', '[email protected] _data');

El siguiente resultado aparecerá después de ingresar la URL a continuación en el navegador.

http: // localhost: 8000 / manu

Tabla de productos

Añade el Producto modelo en la parte superior de la ProductController. A continuación, agregue el siguiente código dentro del ProductController para insertar tres registros en el productos mesa.

índice de función pública ()

Producto :: crear ([
'name' => 'TV 32 pulgadas',
'precio' => 10000,
'fabricante_id' => 1
]);
Producto :: crear ([
'name' => 'Refrigerador Walton',
'precio' => 20000,
'fabricante_id' => 1
]);
Producto :: crear ([
'nombre' => 'IPS 7832',
'precio' => 25000,
'fabricante_id' => 2
]);
echo "Datos del producto insertados";

Agregue la siguiente ruta en el rutas \ web.php archivo para ejecutar el índice() método.

Route :: get ('producto', '[correo electrónico protegido]');

El siguiente resultado aparecerá después de ingresar la URL a continuación en el navegador.

http: // localhost: 8000 / producto

Seleccionar datos

Agregue el siguiente método dentro del ManuController para recuperar todos los registros de La fabricas tabla y los registros relacionados de la productos mesa.

función pública select_data ()

$ fabricantes = Fabricante :: todos ();
foreach ($ fabricantes como $ manu)
$ productos = Producto :: donde ('fabricante_id', $ manu-> id) -> get ();
eco "Fabricante: $ manu-> name
";
foreach ($ productos como $ pro)

eco "

Nombre del producto: $ pro> name

";
eco "

Precio del producto: $ pro> precio


";


Agregue la siguiente ruta en el rutas \ web.php archivo para ejecutar el select_data () método.

Route :: get ('product_detail', '[email protected] _data');

El siguiente resultado aparecerá después de ingresar la URL a continuación en el navegador.

http: // localhost: 8000 / product_detail

Actualizar datos

Agregue el siguiente método dentro del ManuController para actualizar el registro de la productos tabla que contiene identificación valor 2.

función pública update_data ()

$ producto = Producto :: buscar (2);
echo "Detalles del producto antes de la actualización:
";
eco "

Nombre del producto: $ producto-> nombre

";
eco "

Precio del producto: $ producto-> precio


";
$ producto-> nombre = 'Walton Blender';
$ producto-> precio = 1000;
$ producto-> guardar ();
echo "Detalles del producto después de la actualización:
";
eco "

Nombre del producto: $ producto-> nombre

";
eco "

Precio del producto: $ producto-> precio


";

Agregue la siguiente ruta en el rutas \ web.php archivo para ejecutar el actualizar datos() método.

Route :: get ('update_data', '[email protected] _data');

El siguiente resultado aparecerá después de ingresar la URL a continuación en el navegador.

http: // localhost: 8000 / update_data

Borrar datos

Agregue el siguiente método dentro del ManuController para eliminar varios registros de la productos tabla y un solo registro de la fabricantes mesa.

función pública delete_data ()
// Eliminar varios datos
Producto :: destruir ([1, 2]);
// Eliminar datos individuales
Fabricante :: destruir (1);
echo "Los datos se borran.";

Agregue la siguiente ruta en el rutas \ web.php archivo para ejecutar el borrar datos() método.

Route :: get ('delete_data', '[email protected] _data');

El siguiente resultado aparecerá después de ingresar la URL a continuación en el navegador.

http: // localhost: 8000 / delete_data

Tutorial en video

Conclusión

Este tutorial le mostró cómo crear relaciones entre tablas y cómo implementar operaciones CRUD usando Eloquent ORM. Incluso los nuevos usuarios de Laravel podrán comprender algunos usos básicos de Eloquent OPM después de leer este tutorial.

Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...
Vuelva a asignar los botones del mouse de manera diferente para diferentes programas con X-Mouse Button Control
Tal vez necesite una herramienta que pueda hacer que el control de su mouse cambie con cada aplicación que use. Si este es el caso, puede probar una a...
Revisión del mouse inalámbrico Microsoft Sculpt Touch
Recientemente leí sobre el Microsoft Sculpt Touch mouse inalámbrico y decidí comprarlo. Después de usarlo por un tiempo, decidí compartir mi experienc...