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:
et ma vue:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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')); }
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager