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

653
Vistas
Llamada al método no definido App\Models\Comment::comments()

Quería agregar un comentario a cada publicación que hago, pero sigo recibiendo errores.

Controlador de comentarios:

 public function store(Request $request) { $comments = new Comment; $comments->body =$request->get('comment_body'); $comments->user()->associate($request->user()); $blogs = Comment::find(1); $blogs->comments()->save($comments); return back(); }

Modelo de comentario:

 namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Comment extends Model { use HasFactory; protected $guarded =[]; public function blog() { return $this->belongsTo(Blog::class); } public function user() { return $this->belongsTo(User::class); } }

Modelo de blog:

 namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Blog extends Model { use HasFactory; protected $fillable = ['user_id' , 'blog_category_id' , 'title' , 'description']; public function user() { return $this->belongsTo(user::class); } public function blogcategory() { return $this->hasOne(BlogCategory::class)->withDefault(function($user , $post){ $user->name = "Author"; }); } public function comments() { return $this->hasMany(Comment::class); } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Está utilizando el modelo incorrecto; el modelo Blog tiene la relación de comments , no el modelo Comentario:

 $blog = Blog::find(...); $blog->comments()->save(...);

Actualizar:

Parece que desea utilizar una relación polimórfica que parecería basada en la estructura de su tabla de comments , ya que tiene los campos commentable_id y commentable_type . Si revisa la documentación para la relación polimórfica de uno a muchos, esto es lo mismo que el ejemplo en la documentación:

Modelo de blog:

 public function comments() { return $this->morphMany(Comment::class, 'commentable'); }

Modelo de comentario:

 public function commentable() { return $this->morphTo(); }

Laravel 8.x Docs - Eloquent - Relaciones - Relaciones polimórficas - Uno a muchos

Habiendo dicho eso, su modelo de comentario no parece que quisiera usar una relación polimórfica ya que específicamente tenía un método de relación de blog . Si no tiene más de 1 entidad que necesita estar relacionada con el comentario, no estaría usando una relación polimórfica.

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