Excluye atributos del modelo fácilmente con el nuevo método except() de Laravel

  • Publicado el 15 abril, 2025
  • Palabras: 129

¿Necesitas obtener los atributos del modelo y excluir campos sensibles o innecesarios? El nuevo método Model::except() de Laravel complementa el método only() existente haciendo exactamente lo contrario.

Excluye atributos del modelo fácilmente con el nuevo método except() de Laravel

Al trabajar con modelos Eloquent, a menudo es necesario recuperar un subconjunto de atributos del modelo, quizás para pasarlos a una vista o devolverlos en una respuesta de la API. Laravel ha proporcionado desde hace tiempo el método only() para incluir atributos específicos en la lista blanca, pero a veces resulta más conveniente trabajar desde la otra dirección: conservar todo excepto unos pocos atributos. El nuevo método except() simplifica y expresiva esta tarea. Veamos como funciona:

 

$attributes = $user->except('password', 'remember_token');
// Devuelve todos los atributos excepto password y remember_token

 

#Ejemplo práctico

El método except() es particularmente útil cuando se preparan modelos para visualización o serialización y se excluyen campos sensibles o innecesarios:

 

class UserController extends Controller
{
    public function show(User $user)
    {
        // Return all user data except sensitive fields
        return view('users.profile', [
            'userData' => $user->except('password', 'remember_token', 'two_factor_secret')
        ]);
    }
    
    public function apiProfile(Request $request)
    {
        $user = $request->user();
        
        // Return all user attributes except internal or sensitive ones
        return response()->json(
            $user->except('id', 'password', 'remember_token', 'email_verified_at', 'created_at', 'updated_at')
        );
    }
}

 

Al aprovechar el nuevo método except() junto con el método only() existente, ahora tiene un conjunto de herramientas completo para recuperar exactamente los atributos del modelo que necesita en cualquier situación.

Antonio Jenaro
Antonio Jenaro

Web Developer

Archivado en:

Fuente: Harris Raftopoulos

Inicia la conversación

Hazte miembro de Antonio Jenaro para comenzar a comentar.

Regístrate ahora

¿Ya estás registrado? Inicia sesión