Я пытаюсь получить все значения флажков из базы данных, и те значения, которые выбраны, необходимо проверить. У меня есть много ко многим отношениям между моделями, и в настоящее время я могу извлечь все значения из базы данных и записать их в блейд или те значения, которые только что выбраны (это одно ИЛИ другое), но я не могу найти решение для восстановить их все, что существует в базе данных, и те, которые выбраны для проверки. Любая помощь приветствуется. Вот мой код и таблицы базы данных.
user_profiles table
id user_id first_name
1 1 Mike
sport table
id name
1 Football
2 Basketaball
3 Handball
4 Etc...
user_sport table
id user_id sport_id
1 1 1
2 1 2
UserProfile. php
public function sports()
{
return $this->belongsToMany(UserSport::class, 'user_sport', 'user_id', 'sport_id');
}
UserSport. php
public function userProfiles()
{
return $this->belongsToMany(UserProfile::class, 'user_sport', 'sport_id', 'user_id');
}
UserProfileController. php
public function showProfile($username, Request $request)
{
$profileId = User::getIdFromUsername($username);
$sportsOptions = UserSport::get();
$userSportsOptions = UserProfile::findOrFail($profileId)->sports()->get();
return view('profile.show', compact('sportsOptions', 'userSportsOptions'));
}
show.blade. php
@foreach($sportsOptions as $sportsOption)
<label class="checkbox-inline">
<input type="checkbox" id="sport" name="sport[]" value="{{$userSportsOptions->id}}"> {{$userSportsOptions->name}}
</label>
@endforeach
Итак, я знаю, что соглашения об именах не очень хороши, но отношения работают, и в этом случае с foreach и $ sportsOptions в blade-файле и в примере он отображает все четыре значения из таблицы sport, а с $ userSportsOptions - эти два значения ( выбранные значения). Мне нужна помощь, чтобы добиться того, чтобы в блейде отображались все значения и те, которые были выбраны для выбора.