Edit File: UserRelations.php
<?php namespace App\Models\Relationships; use App\Models\City; use App\Models\Country; use App\Models\FriendReport; use App\Models\FriendRequest; use App\Models\InterestOption; use App\Models\Like; use App\Models\SearchHistory; use App\Models\Subscription; use App\Models\User; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; trait UserRelations { /** * Get the user's city. * @return object */ public function city(): BelongsTo { return $this->belongsTo(City::class); } /** * Get the user's country. * @return object */ public function country(): BelongsTo { return $this->belongsTo(Country::class); } public function subscriptions() { return $this->hasMany(Subscription::class); } public function likes() { return $this->hasMany(Like::class, 'user_id'); } public function receivedLikes() { return $this->hasMany(Like::class, 'liked_user_id'); } public function likedUsers() { return $this->belongsToMany(User::class, 'likes', 'user_id', 'liked_user_id'); } public function interestOptions() { return $this->belongsToMany(InterestOption::class, 'user_interest_option', 'user_id', 'interest_option_id'); } public function sentFriendRequests() { return $this->hasMany(FriendRequest::class, 'user_id'); } public function receivedFriendRequests() { return $this->hasMany(FriendRequest::class, 'friend_id'); } public function friends() { return $this->hasMany(FriendRequest::class, 'user_id') ->where('is_accepted', true) ->orWhere(function ($query) { $query->where('friend_id', $this->id) ->where('is_accepted', true); }); } public function searchHistories(): HasMany { return $this->hasMany(SearchHistory::class); } public function reports(): HasMany { return $this->hasMany(FriendReport::class); } }
Back to File Manager