Comparte:
Mostrar los Nombramientos de una persona
Estoy realizando una aplicación que guarda los nombramientos de una persona, esta puede tener 1, 2, 3 ó mas nombramientos, logro registrar los nombramientos por cada persona pero al momento de listar los de una persona me muestra todos y quiero los que pertenecen a cada persona.
Modelo: Persona
Modelo: Persona
public function nombras()
{
return $this->hasMany(Nombra::class, 'persona_id', 'id');
}
Modelo: Nombra
public function persona()
{
return $this->belongsTo(Persona::class);
}
Controlador: NombraController, estoy usando index,
public function index()
{
$nombra = Nombra::all(['id', 'cat_id', 'horas', 'plaza', 'partida', 'nombramientos_id', 'fecha_nom', 'persona_id' ]);
$persona = auth()->user()->persona;
$persona = Nombra::where('persona_id', $persona)->get();
return view('nombra.index')
->with('nombra', $nombra)
->with('persona', $persona);
}
Vista: index.blade.php
<table class="table">
<thead class=" bg-primary text-light justify-content-between align-items-center">
<tr>
<th scole="col">#</th>
<th scole="col">Nombre</th>
<th scole="col">Apellido paterno</th>
<th scole="col">Apellido materno</th>
<th scole="col">No. Expediente</th>
<th scole="col">Acciones</th>
</tr>
</thead>
@foreach($persona as $persona)
<tr>
<td> {{$persona->id}} </td>
<td> {{$persona->nombre}} </td>
<td> {{$persona->ap_pat}} </td>
<td> {{$persona->ap_mat}} </td>
<td> {{$persona->exp}} </td>
<td>
<a href="{{ route('persona.show', ['persona'=> $persona->id])}} " class="btn btn-outline-primary d-block mb-2">Ver</a>
<a href="{{ route('persona.edit', ['persona'=> $persona->id])}}" class="btn btn-outline-secondary d-block mb-2">Editar</a>
<a href="{{ route('nombra.index', ['persona'=> $persona->id])}} " class="btn btn-outline-dark d-block mb-2">Nombramientos</a>
{
return $this->hasMany(Nombra::class, 'persona_id', 'id');
}
Modelo: Nombra
public function persona()
{
return $this->belongsTo(Persona::class);
}
Controlador: NombraController, estoy usando index,
public function index()
{
$nombra = Nombra::all(['id', 'cat_id', 'horas', 'plaza', 'partida', 'nombramientos_id', 'fecha_nom', 'persona_id' ]);
$persona = auth()->user()->persona;
$persona = Nombra::where('persona_id', $persona)->get();
return view('nombra.index')
->with('nombra', $nombra)
->with('persona', $persona);
}
Vista: index.blade.php
<table class="table">
<thead class=" bg-primary text-light justify-content-between align-items-center">
<tr>
<th scole="col">#</th>
<th scole="col">Nombre</th>
<th scole="col">Apellido paterno</th>
<th scole="col">Apellido materno</th>
<th scole="col">No. Expediente</th>
<th scole="col">Acciones</th>
</tr>
</thead>
@foreach($persona as $persona)
<tr>
<td> {{$persona->id}} </td>
<td> {{$persona->nombre}} </td>
<td> {{$persona->ap_pat}} </td>
<td> {{$persona->ap_mat}} </td>
<td> {{$persona->exp}} </td>
<td>
<a href="{{ route('persona.show', ['persona'=> $persona->id])}} " class="btn btn-outline-primary d-block mb-2">Ver</a>
<a href="{{ route('persona.edit', ['persona'=> $persona->id])}}" class="btn btn-outline-secondary d-block mb-2">Editar</a>
<a href="{{ route('nombra.index', ['persona'=> $persona->id])}} " class="btn btn-outline-dark d-block mb-2">Nombramientos</a>
Jorge García (2908 xp)
En ese caso sólo es necesario una variable, me pregunto por qué sobreescribes la variable $persona? Quieres mostrar todas las personas o solo la personas del usuario autenticado?