File manager - Edit - /var/www/ratemypay/app/Models/PostComment.php
Back
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\SoftDeletes; class PostComment extends Model { use HasFactory, SoftDeletes; protected $fillable = [ 'rate_my_pay_id', 'user_id', 'parent_id', 'content', 'likes_count', ]; protected $casts = [ 'likes_count' => 'integer', ]; // Relationships public function rateMyPay(): BelongsTo { return $this->belongsTo(RateMyPay::class); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function parent(): BelongsTo { return $this->belongsTo(self::class, 'parent_id'); } public function replies(): HasMany { return $this->hasMany(self::class, 'parent_id'); } public function likes(): HasMany { return $this->hasMany(PostLike::class, 'likeable_id') ->where('likeable_type', self::class); } // Accessors public function getAuthorNameAttribute(): string { return $this->user->name; } // Methods public function isLikedBy(User $user): bool { return $this->likes()->where('user_id', $user->id)->exists(); } public function isReply(): bool { return !is_null($this->parent_id); } public function incrementLikesCount(): void { $this->increment('likes_count'); } public function decrementLikesCount(): void { $this->decrement('likes_count'); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings