checkbox coché sur données mysql
Bonjour à tous,
Je coince sur un affichage de checkbox cochés sur base d'info contenue en BDD.
Je dispose de 3 tables:
House
ID |
NAME |
1 |
maison1 |
2 |
Maison2 |
3 |
Maison3 |
Agency:
ID |
NAME |
1 |
agence1 |
2 |
agence2 |
3 |
agence3 |
HouseLinked
ID |
agency_id |
house_id |
1 |
1 |
1 |
2 |
1 |
2 |
3 |
1 |
3 |
4 |
2 |
3 |
5 |
3 |
1 |
Une agence peut gérer plusieurs maisons et les différentes agences peuvent gérer les mêmes maisons.
mon controler:
Code:
1 2 3 4 5 6 7 8 9
|
public function edit(Agency $link) //$link = id de l'agence
{
$houses = House::all(); //affiche toute les maisons
$houseLinked = HouseLinked::where('agency_id',$link->id)->get();
//dd($houseLinked);
return view('/admin/agencies/link.edit',compact('link','houses','houseLinked'));
} |
et ma vue:
j'affiche toutes les maisons disponibles dans ma boucle foreach.
Par contre là où cela ne va pas c'est pour afficher les cases à cocher. en tenant compte que si l'ID de la maison est présent dans la table HouseLinked pour l'agence concernée, alors il coche celle-ci.
Comment faire dans ce cas ?
Merci pour votre aide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
<form method="POST" action="/admin/agencies/link/{{$link->id}}">
@csrf
@method('PATCH')
@foreach($houses as $house)
<div class="form-group row">
<div class="form-check">
@foreach($houseLinked as $hl)
<input class="form-check-input" type="checkbox" name="house_id[]" value="{{$house->id}}" checked="{{$house->id == $hl->house_id ? 'checked':' '}}" >
@endforeach
<label class="form-check-label" for="defaultCheck1">
{{$house->name}}
</label>
</div>
</div>
@endforeach |