Files
thrillwiki_laravel/app/Models/HelpfulVote.php

45 lines
914 B
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class HelpfulVote extends Model
{
protected $fillable = [
'review_id',
'user_id',
];
// Relationships
public function review(): BelongsTo
{
return $this->belongsTo(Review::class);
}
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
// Helper method to toggle vote
public static function toggle(int $reviewId, int $userId): bool
{
$vote = static::where([
'review_id' => $reviewId,
'user_id' => $userId,
])->first();
if ($vote) {
$vote->delete();
return false;
}
static::create([
'review_id' => $reviewId,
'user_id' => $userId,
]);
return true;
}
}