抛出BadMethodCallException并显示消息"调用未定义的方法Illuminate \ Database \ Query \ Builder :: raise()"

时间:2015-04-14 08:28:26

标签: php laravel-4 phpmyadmin xampp eloquent

我指的是Laraasts Laraasts上的第16期(出版状态)课程。 我安装了Laravel 4.2&我得到了

  

抛出BadMethodCallException并显示消息“调用未定义的方法Illuminate \ Database \ Query \ Builder :: raise()”

我的Status.php方法'raise'存在于:

<?php

namespace SocialBucket\Statuses;

use SocialBucket\Statuses\Events\StatusWasPublished;
class Status extends \Eloquent {

/*
 * fillable fields for a new status.
 */
protected $fillable = ['body'];

/*
 * A status belongs to a user.
 */
public function user()
{
     return $this->belongsTo('SocialBucket\Users\User');
}

/**
 * Publish a new status.
 * @param $body
 * @return static
 */
public static function publish($body)
{
    $status = new static(compact('body'));

    $status->raise(new StatusWasPublished($body));

    return $status;
}

}

在PHPStorm中它也给我一个错误

  

在类static中找不到方法'raise'。

但教练Jeffery Way使用相同的方法,我无法确定出现了什么问题,因为其他用户都没有在论坛中遇到同样的错误。

1 个答案:

答案 0 :(得分:1)

  • 你安装了Laravel Commander&#39;并更新了供应商吗?
  • 您是否为事件StatusWasPublished创建了CommandHandler?
  • 您必须添加名称空间use Laracasts\Commander\Events\EventGenerator;
  • 您需要在use EventGenerator;
  • 之前撰写protected $fillable = ['body'];

Laravel Commander Package