添加话题回复时出现Call to ... App\\Models\\Topic::updateReplyCount()

测试增加话题回复时,报错如下图:

保存话题回复时出现问题,Call to undefined method App\\Models\\Topic::updateReplyCount()

应该是触发了教程L02的更新话题回复数的观察器,不知道为何没有调用App\Models\Reply里的updateReplyCount,而是去报这个错
Call to undefined method App\Models\Topic::updateReplyCount():
ReplyObserver.php

<?php

namespace App\Observers;

use App\Models\Reply;
use App\Notifications\TopicReplied;

class ReplyObserver
{
  //统计回复数
  public function created(Reply $reply) {  
  // 命令行运行迁移时不做这些操作!
  if ( ! app()->runningInConsole()) {
      $reply->topic->updateReplyCount();
      // 通知话题作者有新的评论
      $reply->topic->user->notify(new TopicReplied($reply));
  }
 }
}

Models 里的Reply.php

<?php

namespace App\Models;

class Reply extends Model
{

    protected $fillable = ['content'];

  public function topic()
 {  
     return $this->belongsTo(Topic::class);
  }

  public function user()
 {  
     return $this->belongsTo(User::class);
  }

  public function updateReplyCount()
 {  
      $this->reply_count = $this->replies->count();
      $this->save();
  }
}
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

调用方法是$reply->topic->updateReplyCount.
所以方法应该放在模型topic里,我放在了reply里。

3年前 评论
讨论数量: 1

调用方法是$reply->topic->updateReplyCount.
所以方法应该放在模型topic里,我放在了reply里。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!