🆙 More fixes 🆙

This commit is contained in:
Remco
2026-01-19 21:04:53 +01:00
parent 451b7edda3
commit 8d3115678c
10 changed files with 75 additions and 21 deletions
+5 -4
View File
@@ -2,16 +2,17 @@
namespace App\Models\Articles;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\MorphToMany;
class Tag extends Model
{
use HasFactory;
protected $guarded = [];
public function websiteArticles()
/**
* @return MorphToMany<WebsiteArticle, $this>
*/
public function websiteArticles(): MorphToMany
{
return $this->morphedByMany(WebsiteArticle::class, 'taggable');
}
@@ -6,6 +6,8 @@ use App\Models\User;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use App\Models\Articles\Tag;
use Illuminate\Database\Eloquent\Relations\MorphToMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\Auth;
use Spatie\Sluggable\HasSlug;
@@ -25,17 +27,26 @@ class WebsiteArticle extends Model
->usingSeparator('-')->allowDuplicateSlugs();
}
/**
* @return BelongsTo<User, $this>
*/
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
/**
* @return HasMany<WebsiteArticleReaction, $this>
*/
public function reactions(): HasMany
{
return $this->hasMany(WebsiteArticleReaction::class, 'article_id')
->whereActive(true);
}
/**
* @return HasMany<WebsiteArticleComment, $this>
*/
public function comments(): HasMany
{
return $this->hasMany(WebsiteArticleComment::class, 'article_id');
@@ -52,13 +63,17 @@ class WebsiteArticle extends Model
parent::boot();
static::saving(function ($model): void {
/** @var WebsiteArticle $model */
if (empty($model->image)) {
$model->image = '';
}
});
}
public function tags()
/**
* @return MorphToMany<Tag, $this>
*/
public function tags(): MorphToMany
{
return $this->morphToMany(Tag::class, 'taggable');
}
@@ -11,11 +11,17 @@ class WebsiteArticleComment extends Model
{
protected $guarded = ['id', 'created_at', 'updated_at'];
/**
* @return BelongsTo<WebsiteArticle, $this>
*/
public function article(): BelongsTo
{
return $this->belongsTo(WebsiteArticle::class, 'article_id');
}
/**
* @return BelongsTo<User, $this>
*/
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
@@ -3,14 +3,11 @@
namespace App\Models\Articles;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
class WebsiteArticleReaction extends Model
{
use HasFactory;
protected $guarded = [];
public $timestamps = false;
@@ -34,15 +31,22 @@ class WebsiteArticleReaction extends Model
parent::boot();
static::creating(function ($model): void {
$model->user_id = auth()->id();
/** @var WebsiteArticleReaction $model */
$model->user_id = (int) auth()->id();
});
}
/**
* @return BelongsTo<WebsiteArticle, $this>
*/
public function article(): BelongsTo
{
return $this->belongsTo(WebsiteArticle::class, 'article_id');
}
/**
* @return BelongsTo<User, $this>
*/
public function user(): BelongsTo
{
return $this->belongsTo(User::class);