Cómo aplicar muchos where a una consulta con Eloquent?

Publicado por Keygured
hace 3 meses

En mi aplicación hecha con Laravel hago consultas a la base de datos usando Eloquent, Pero tengo muchos wheres y se ve un poco feo realmente, hay alguna forma de simplificar esto usando un solo where o quizá con alguna otra función?

User::where('campo_1', true)
->where('campo_2', true)
->where('campo_3', true)
->where('campo_4', false)
etc...
Respuesta de Nick
hace 3 meses

Hola

Muy buena pregunta, hay dos formas de poder simplificar tu codigo.

La primera es usar scopes. de esta forma:

User::activos()->conDatos()->etc();

Para eso hay que definir los scopes para cada consulta en el modelo asi:

public function scopeActivos($query)
{
    return $query->where('activo', true);
}

Con eso queda clara la idea

La segunda forma es con el uso de arrays y seria algo asi :

User::where(['campo_1' => true, 'campo_2' => false, ...]);

Espero te sirva, y puedas implementarlo.

Saludos.

Respuesta de Keygured
hace 3 meses

Gracias, lo haré con los arrays.

Para poder participar del foro necesitas iniciar sesión con tu cuenta. Si no tienes una puedes registrarte utilizando tu email!

Iniciar sesión Quiero registrarme