Prerrequisitos
Antes de comenzar este tutorial, debe realizar las siguientes tareas:
- Instale una nueva copia del proyecto Laravel
- 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_tableAbra 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_tableAbra 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 artesanalCrear 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 ManufacturerAbra 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 ProductoAplicació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.