PHP Traits"方法不存在"

时间:2018-01-10 20:49:50

标签: php laravel traits

我正在使用laravel-comment来让用户互相评论。因此,我需要同时使用 Commentable CanComment 特征。但是当我一起使用它们时,我得到一个错误。

用户像这样使用它:

use Commentable, CanComment {
    Commentable::comments insteadof CanComment;
}

我正在尝试这样的评论:

foreach (User::all() as $user) {
    $receiver = User::where('id', '!=', $user->id)->inRandomOrder()->get();
    $user->comment($receiver, $faker->text(100), 3);
}

即使 CanComment 特征有一个名为getCanBeRated的方法,我也会收到错误消息,说明它没有。为什么会这样?

1 个答案:

答案 0 :(得分:5)

您收到此错误是因为您尝试在集合上使用此方法而不是User对象。使用first()代替get()get an object instead of collection

$receiver = User::where('id', '!=', $user->id)->inRandomOrder()->first();