Eliminar registros de la base de datos con Eloquent en Laravel
Hola developers, hoy en esta sección vamos a aprender a eliminar registros en las tablas de la base de datos de una forma simple. Para ello utilizaremos diferentes formas de eliminar un registro o varios registros. Al igual como eliminar todos los registros de una tabla.
Autor: rogercode. Full stack developerPara eliminar un registro primero se debe de encontrar y para ello utilizamos el método find que recibe como parámetro el id del registro a eliminar, Y a continuación se llama el método delete. De esta forma fácil se puede eliminar un registro
Eliminar un registro mediante el método delete de Eloquent en Laravel.☟.
Ver el código para entender.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Articulo; //Importamos el método Articulo para utilizarlo en las cónsulas con ORM.
class ArticuloController extends Controller
{
Public function destroy($id){ //Recibe como parámetro el id del registro a eliminar.
$articulo = Articulo::find($id); //Se encuentra el registro.
$articulo->delete(); //A continuación, se elimina el registro.
}
}
Eliminar todos los registros de mi tabla utilizando el método truncate en Laravel☟.
El método truncate permite eliminar todos los registros de una tabla. Para ello debemos de especificar mediante el modelo a que tabla se le van a eliminar todos los registros siempre y cuando no contenga llaves foráneas que dependan de otras tablas.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Articulo; //Importamos el método Articulo para utilizarlo en las cónsulas con ORM.
class ArticuloController extends Controller
{
Public function destroy(){
Articulo::truncate(); //Se eliminan todos los registros de la tabla articulo.
}
}
Eliminar el primer registro donde la condición se cumpla utilizando el método firstWhere y delete de Eloquent en Laravel☟.
El método firstWhere permite encontrar el primer registro que cumpla la condición descrita, y una vez que se localiza el registro se procede a ejecutar el método delete.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Articulo; //Importamos el método Articulo para utilizarlo en las cónsulas con ORM.
class ArticuloController extends Controller
{
Public function destroy(){
$mensaje = ""; //Se declara una variable inicial para el mensaje.
$articulo = Articulo::firstWhere('stock', 0); //Encontramos el primer articulo donde su stock sea igual a 0.
if ($articulo === null) { //Se valida si el articulo es igual a null
$mensaje = "Registro inexistente."; //Se le asigna a la variable $mensaje el texto que va a retornar en caso de no encontrar el registro.
}
if ($articulo != null) { //Se valida que el registro sea diferente de null.
$articulo->delete(); //Se procede a eliminar el registro.
$mensaje = "Articulo eliminado con éxito."; // Se le asigna a la variable $mensaje el texto que va a retornar una vez que se elimina el registro.
}
return view('articulo.index', ['mensaje'=> $mensaje]); //Al final se retorna la vista y pasamos como parámetro la variable $mensaje para saber que fue lo que ocurrió.
}
}
Eliminar varios registros mediante su id utilizando el método whereIn de Eloquent en Laravel☟.
El método whereIn recibe como parámetro el nombre de la columna y los registros a eliminar.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Articulo; //Importamos el método Articulo para utilizarlo en las cónsulas con ORM.
class ArticuloController extends Controller
{
Public function destroy(){
Articulo::whereIn('idarticulo', [2, 4])->delete(); //Se eliminan los registros con id 2 y 4.
}
}