PHP 特征 "Method does not exist"
PHP Traits "Method does not exist"
我正在使用 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
的方法,但我收到一条错误消息说它没有。为什么会这样?
您收到此错误是因为您试图在集合上而不是在 User
对象上使用此方法。使用 first()
而不是 get()
到 :
$receiver = User::where('id', '!=', $user->id)->inRandomOrder()->first();
我正在使用 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
的方法,但我收到一条错误消息说它没有。为什么会这样?
您收到此错误是因为您试图在集合上而不是在 User
对象上使用此方法。使用 first()
而不是 get()
到
$receiver = User::where('id', '!=', $user->id)->inRandomOrder()->first();