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 developer

Para 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.

        }
      }