Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

912
Vistas
Relación entre dos tablas - Laravel, Inertia, Vuejs

soy nuevo en el tema, tengo dos tablas relacionadas entre si, una para departamentos y otra para usuarios, quiero saber cuantos usuarios hay en cada departamento

DepartmentController.php

 public function index() { return Inertia::render('back/app/departments/index', [ 'filters' => request()->all('visibility', 'status', 'search'), 'departments' => Department::orderBy('name')->get(), 'total_members' => User::where('department_id')->count(), dd(User::where('department_id')->count()), ]); }

Índice.vue

 <td class="flex items-center text-sm leading-5 text-gray-500 px-6 py-4 whitespace-no-wrap"> <span class="font-medium">{{ department.total_members }}</span>&nbsp;{{ $trans('labels.members') }} </td> <td class="px-6 py-4 whitespace-no-wrap text-right text-sm leading-5 font-medium"> <inertia-link :href="route('app:projectdepartment.index', {id: department.id})"> {{ $trans('labels.view-activity') }} </inertia-link> </td>
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Si tiene la relación de users configurada en su modelo de Department , puede usar el método withCount() :

 Department::withCount('users')->orderBy('name')->get()

Esto le dará una propiedad de cuenta de users_count en cada departamento.

over 4 years ago · Santiago Trujillo Denunciar

0

Suponiendo que tiene las relaciones definidas en cada modelo como se indicó, también puede definir un elemento de acceso o, como ya se dijo, obtener la cantidad de modelos relacionados mediante withCount o también con loadCount después de recuperar un modelo de departamento individual.

Modelos/Usuario.php

 public function department() { return $this->belongsTo(Department::class, 'department_id'); } public function getActiveUserCountAttribute($value) { // Perform additional logic on the users relationship return $this->users()->where('active',1)->count(); }

Modelos/Departamento.php

 public function users() { return $this->hasMany(User::class); }

Recuerda que uno de los beneficios de withCount es que no carga los modelos relacionados, evitando un problema de n+1. Si usa withCount, no necesitaría el descriptor de acceso definido en el modelo de departamento, pero sí la relación de usuario definida en el departamento.

Tenga en cuenta que también puede usar el método loadCount después de haber recuperado el modelo de departamento, por ejemplo, para una página de presentación individual en lugar de una colección.

// Desde tu método show en tu controlador

 $department = Department::where('name',$request['name'])->first(); $department->loadCount('users');

Para cargar con entusiasmo el atributo 'active_user_count' en cada modelo de departamento, usaría la propiedad $with. Con esto definido, no necesitaría usar withCount o similar en su método de controlador.

// Departamento.php

 // A relationship that should always be loaded with every Department request. protected $with = ['active_user_count']

Documentos de Laravel: https://laravel.com/docs/8.x/eloquent-relationships#counting-related-models

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda