Tutorial de ORM eloquent de Laravel

Tutorial de ORM eloquent de Laravel
ELOQUENT ORM (mapeador de relación de objetos) es fácil de usar para los usuarios que saben cómo usar objetos en PHP. El ORM es una característica importante del marco de Laravel, considerado una característica poderosa y costosa de Laravel. El ORM funciona con objetos de base de datos y se utiliza para establecer relaciones con tablas de bases de datos. Cada tabla de la base de datos se asigna 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 mediante la implementación de ActiveMethod. Esta característica hace que las tareas relacionadas con la base de datos, como definir relaciones, más simples definiendo las tablas de la base de datos. Este tutorial explica cómo aplicar Laravel elocuente ORM en sus proyectos de Laravel.

Requisitos previos

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

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

Crear tablas

Para completar los pasos del tutorial, debe crear dos tablas en la base de datos. Estas son la mesa del fabricante y la tabla de productos. La relación entre estas dos tablas será 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: Migration 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, creación_at y actualizado_at.

función pública up ()

Schema :: Create ('Manufacturers', function (BluePrint $ Table)
$ table-> id ();
$ table-> string ('name')-> unique ();
$ table-> text ('dirección');
$ table-> string ('teléfono');
$ table-> timestamps ();
);

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

$ PHP Artisan Make: Migration create_product_table

Abra el archivo de migración desde el 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, creación_at y actualizado_at. Aquí, Manufacture_ID es una clave extranjera para el productos mesa.

función pública up ()

Schema :: Create ('Products', Function (BluePrint $ Table)
$ table-> id ();
$ table-> string ('name')-> unique ();
$ table-> decimal ('precio', 10, 2);
$ table-> bigInteger ('Fabricante_id')-> unsigned ();
$ table-> extranjero ('fabricante_id')-> referencias ('id')-> on ('fabricantes');
$ table-> timestamps ();
);

Ejecute el siguiente comando migrar para crear las tablas en la base de datos.

$ PHP Artisan Migrate

Crear modelos

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

$ PHP Artisan Make: Fabricante de modelos

Abra el modelo desde el aplicación carpeta y modificar el código con el siguiente código. $ Fillable se usa para definir los campos obligatorios del fabricar mesa. El 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;
El fabricante de clases extiende el modelo

protegido $ Fillable = [
'nombre', 'dirección', 'teléfono',
];
Productos de funciones públicas ()

devolver $ this-> Hasmany ('App \ Product');

Ejecute el siguiente comando para crear el Producto modelo.

Abra el modelo desde el aplicación carpeta y modificar el código con el siguiente código. $ Fillable se usa para definir los campos obligatorios del productos mesa. El Fabricantes () El método se utiliza para establecer el tipo de relación con el artículos mesa.

$ PHP Artisan Make: Model Product
aplicación de espacio de nombres;
use Illuminate \ Database \ ELOQUENT \ Model;
El producto de clase extiende el modelo

protegido $ Fillable = [
'Nombre', 'Precio', 'Fabricante_id'
];
Fabricantes de funciones públicas ()

devolver $ this-> pertenecersto ('app \ fabricante');

Crear controladores

Ejecute los siguientes comandos para crear Manucontrolador y Productora.

$ PHP Artisan Make: controlador Manucontroller
$ PHP Artisan Make: Controller ProductController

Operaciones de CRUD utilizando ELOQUENT ORM

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

Insertar datos

Mesa del fabricante

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

función pública create_data ()

Fabricante :: Crear ([[
'Nombre' => 'ABC Trade',
'Dirección' => '34, Mirpur, Dhaka ',
'Phone' => '01878562323'
]);
Fabricante :: Crear ([[
'Nombre' => 'Rahim Afroze',
'Dirección' => '123, Dhanmondi, Dhaka',
'Phone' => '01878562900'
]);
echo "datos del fabricante insertados";

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

Ruta :: Get ('Manu', 'Manucontroller@create_data');

La siguiente salida 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 del Productora. A continuación, agregue el siguiente código dentro del Productora para insertar tres registros en el productos mesa.

índice de funciones públicas ()

Producto :: Crear ([[
'Nombre' => 'TV 32 Inche',
'Price' => 10000,
'Manufacturer_id' => 1
]);
Producto :: Crear ([[
'Nombre' => 'Walton Fridge',
'Price' => 20000,
'Manufacturer_id' => 1
]);
Producto :: Crear ([[
'Nombre' => 'IPS 7832',
'Price' => 25000,
'Manufacturer_id' => 2
]);
echo "datos del producto insertados";

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

Ruta :: get ('producto', 'productController@index');

La siguiente salida 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 Manucontrolador Para recuperar todos los registros de La fabricaS TABLA Y los registros relacionados del productos mesa.

función pública select_data ()

$ fabricante = fabricante :: all ();
foreach ($ fabricantes como $ manu)
$ Products = Product :: Where ('Manufacturer_id', $ manu-> id)-> get ();
eco "Fabricante: $ man-> nombre
";
foreach ($ productos como $ pro)

eco "

Nombre del producto: $ pro-> nombre

";
eco "

Precio del producto: $ pro-> precio


";


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

Ruta :: get ('product_detail', 'manucontroller@select_data');

La siguiente salida 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 Manucontrolador para actualizar el registro del productos tabla que contiene identificación valor 2.

Función pública update_data ()

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

Nombre del producto: $ Product-> Nombre

";
eco "

Precio del producto: $ Product-> Precio


";
$ Product-> name = 'Walton Blender';
$ producto-> precio = 1000;
$ Product-> Save ();
Echo "Detalles del producto después de la actualización:
";
eco "

Nombre del producto: $ Product-> Nombre

";
eco "

Precio del producto: $ Product-> Precio


";

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

Ruta :: get ('update_data', 'Manucontroller@update_data');

La siguiente salida 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 Manucontrolador para eliminar múltiples registros del productos mesa y un solo registro del fabricantes mesa.

función pública delete_data ()
// eliminar múltiples datos
Producto :: destruir ([1, 2]);
// Eliminar datos únicos
Fabricante :: destruir (1);
se eliminan los datos de eco ".";

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

Ruta :: get ('delete_data', 'Manucontroller@delete_data');

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

http: // localhost: 8000/delete_data

Tutorial de video

Conclusión

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