Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

384
Visualizações
Laravel 5.8: Intentando obtener la propiedad 'created_at' de un no objeto

Estoy usando Laravel 5.8 para desarrollar mi proyecto y en este proyecto, tengo una relación OneToMany entre el modelo de Member y el modelo de Student como esta:

Student.php :

 public function member() { return $this->belongsTo(Student::class, 'std_mbr_id'); }

Member.php :

 public function student() { return $this->hasOne(Student::class,'std_mbr_id'); }

Luego, en el controlador, agregué esto:

 public function index() { $student = new Student(); $students = $student->searchStudents()->paginate(20); $custom = new Student(); $customs = $custom->all(); return view('admin.students.custom', compact('students','customs')); }

Ahora, en la vista, quiero obtener created_at timestamp de esta manera:

$customs->find($student->mbr_id)->created_at

Pero esto devolverá este error:

Intentando obtener la propiedad 'created_at' de un no objeto

Sin embargo, cuando hago dd($customs->find($student->mbr_id)) , puedo obtener correctamente las marcas de tiempo:

ingrese la descripción de la imagen aquí

Entonces, ¿cómo acceder a la marca de tiempo created_at en esta situación?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Hay muchas posibilidades de arrojar `errores no relacionados con el objeto.

En primer lugar, asegúrese de haber agregado la clave principal en el modelo de Student .

protected $primaryKey = 'std_id';

En segundo lugar, si pasó mal $student->mbr_id en el método find() y accedió directamente a columnas específicas, arrojará un error:

Por favor verifique en su archivo blade si existe registro o no:

 @if($customs->find($student->smbr_id)) {{ $customs->find($student->smbr_id)->created_at }} @endif

Espero que lo entiendas y lo soluciones.

over 4 years ago · Santiago Trujillo Relatório

0

¿Por qué no aprovechar la propiedad de relación dinámica de Eloquent (consulte https://laravel.com/docs/8.x/eloquent-relationships#one-to-many-inverse ) y usar

 $student->member->created_at
over 4 years ago · Santiago Trujillo Relatório

0

find() funciona con la clave principal, que es std_id en este caso. Entonces, para trabajar con otro campo, debes hacer

 $customs->where('std_mbr_id', $student->mbr_id)->first()->created_at
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda