Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

657
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!