Files
opensem/app/Models/Core/Comment.php
2021-10-26 21:41:46 +02:00

70 lines
1.3 KiB
PHP

<?php
namespace App\Models\Core;
use Exception;
use Illuminate\Database\Eloquent\Model;
use App\Traits\HasComments;
class Comment extends Model
{
use HasComments;
protected $fillable = [
'comment',
'user_id',
'is_approved'
];
protected $casts = [
'is_approved' => 'boolean'
];
public function scopeApproved($query)
{
return $query->where('is_approved', true);
}
public function commentable()
{
return $this->morphTo();
}
public function commentator()
{
return $this->belongsTo($this->getAuthModelName(), 'user_id');
}
public function approve()
{
$this->update([
'is_approved' => true,
]);
return $this;
}
public function disapprove()
{
$this->update([
'is_approved' => false,
]);
return $this;
}
protected function getAuthModelName()
{
if (config('comments.user_model')) {
return config('comments.user_model');
}
if (!is_null(config('auth.providers.users.model'))) {
return config('auth.providers.users.model');
}
throw new Exception('Could not determine the commentator model name.');
}
}