Hello,
Maybe I'm doing it totally wrong.
I have three models, Users, Members and Winners.
All the Users are in one database and have a role of user, member or admin.
In de Members database there are the information of a member. And in de Winners there is the latest winner.
Now I want to combine them.
In my User model
public function member(): BelongsTo
{
return $this->belongsTo(Members::class);
}
public function winner(): BelongsTo
{
return $this->belongsTo(Winner::class);
}
In my Member model:
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function winner(): BelongsTo
{
return $this->belongsTo(Winner::class, 'user_id');
}
And in my Winner model:
public function user(): BelongsTo
{
return $this->belongsTo(User::class);
}
public function member(): BelongsTo
{
return $this->belongsTo(Member::class);
}
By members blade files are:
<div>
<div class="border-l-4 border-orange-500 pl-4 flex justify-between items-center">
<div class="text-orange-500 hover:text-orange-600 font-black uppercase focus:outline-none focus:text-orange-600">
Member
</div>
{{ $members->links() }}
</div>
@foreach($members as $member)
<div class="w-full bg-white border border-gray-200 shadow-md dark:bg-gray-800 dark:border-gray-700 my-4 p-4">
<div class="flex space-x-8 pb-4 border-b border-orange-500">
<img src="{{ $member->profile_picture}}" class="w-1/2 h-64 rounded-lg" alt="">
<div class="pt-4 pr-4 w-full">
<div class="text-3xl text-orange-500 font-black uppercase">{{ $member->user->username }}</div>
<p class="text-orange-500 pb-4"> <i class="fa-solid fa-location-dot mr-2"></i> {{ $member->city }}</p>
<div class="relative">
<div class="absolute inset-0 flex items-center" aria-hidden="true">
<div class="w-full border-t border-gray-300"></div>
</div>
</div>
@if($member->birthday != null)
<div class="flex justify-between pt-4 pb-4">
<p class="text-gray-700 dark:text-white">Age: <span class="text-orange-500">{{ $member->age }}</span></p>
<p class="text-gray-700 dark:text-white">Birthday: <span class="text-orange-500">{{ $member->getBirthDate() }}</span></p>
</div>
@endif
<div class="flex justify-between pt-4 pb-4">
<p class="text-gray-700 dark:text-white">Points: <span class="text-orange-500">{{ $member->points }}</span></p>
<p class="text-gray-700 dark:text-white">Played games: <span class="text-orange-500">{{ $member->totalgames }}</span></p>
</div>
</div>
</div>
<div class="p-6">
<div class="text-2xl text-orange-500 font-black uppercase">Biography</div>
<div class="text-gray-700 dark:text-white">
{!! $member->bio !!}
</div>
</div>
</div>
@endforeach
</div>
in my livewire component Members
public function render()
{
return view('livewire.members', [
'members' => Member::with('winner')->simplepaginate(1),
]);
}
How to display the wins of a user.
I tried a lot of given solutions on the internet but no one works.
My latest line was
Cups: {{ $member->winner()->count() }}