我正在使用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
的方法,我也会收到错误消息,说明它没有。为什么会这样?
答案 0 :(得分:5)
您收到此错误是因为您尝试在集合上使用此方法而不是User
对象。使用first()
代替get()
到get an object instead of collection:
$receiver = User::where('id', '!=', $user->id)->inRandomOrder()->first();