tengo un problema con las relaciones, no encuentra propiedades,
Error: Intentando obtener la propiedad 'servicio' de no objeto
Controlador:
public function index(Request $personal){ $personal = Personal::where('nombre' , $personal)->with('nombre')->get(); $servicios = \App\Models\Eventos::orderByDesc('hora')->get(); return view('personal', compact('servicios','personal')); }Modelo Servicios:
class Servicios extends Model { use HasFactory; public function eventos() { return $this->belongsTo(Evento::class); } public function personal() { return $this->belongsTo(Personal::class); } }Modelo Eventos:
class Eventos extends Model { protected $table= 'eventos'; // protected $fillable = [ 'titulo', 'descripcion', 'fecha', 'hora', 'prioridad', 'servicio', 'personal', ]; public $timestamps = false; public function servicio() { return $this->belongsTo(Servicios::class); } public function personal() { return $this->belongsTo(Personal::class); }En hoja.php:
@foreach ($servicios as $hoy) <td>{{$hoy->servicio_id->servicio}}</td> @endforeachBase de datos:
https://i.imgur.com/LvjR6qS.png
No entiendo el error por lo que no encuentro la propiedad
En Laravel puede acceder a las relaciones en el nombre de la función a la que se accede como una propiedad.
Lo siguiente debería solucionar su problema. Tener una relación fillable no hace nada.
@foreach ($servicios as $hoy) <td>{{ $hoy->servicio->servicio_property_to_access }}</td> @endforeachActualizar
Tiene un campo de servicio en su modelo, si no recuerdo mal, puede ser útil cambiar el nombre de la relación.
class Eventos extends Model { public function servicioRelationship() { return $this->belongsTo(Servicios::class); } @foreach ($servicios as $hoy) <td>{{ $hoy->servicioRelationship->servicio }}</td> @endforeach