I am beginner in Laravel. I use in my project Laravel 5.8.
I have this code:
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->char('enable', 1)->default(0);
$table->string('email', 120)->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
....
$table->engine = "InnoDB";
$table->charset = 'utf8mb4';
$table->collation = 'utf8mb4_unicode_ci';
});
}
Schema::create('comments', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->string('commentable_type');
$table->bigInteger('commentable_id');
$table->char('enable', 1)->default(0);
$table->char('to_stats', 1)->default(0);
$table->tinyInteger('rating')->default(0);
$table->text('content');
$table->dateTime('date_time');
$table->ipAddress('ip');
$table->engine = "InnoDB";
$table->charset = 'utf8mb4';
$table->collation = 'utf8mb4_unicode_ci';
});
User.php:
public function userCommentsCount()
{
return $this->hasMany('App\Comment', 'commentable_id', 'id')->where('enable', '=', '1')->where('to_stats', '=', '0');
}
I get my user list from this code:
$users = User::ofRoleType($role)->withCount('commentsReceived')->paginate(50);
@foreach ($users as $user)
User id: $user->id <br/>
@endif
I need to display a list of users with the number of votes (total summary comments.rating per user) they have received.
In result I need:
@foreach ($users as $user)
User id: $user->id has total votes: ...... <br/>
@endif
I want sort my result DESC (from max to min rating votes).
How can I make it?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire