I have a person registration system and there is an area with several checkbox fields that represent the social groups that the current person represents:
TABLES
person
id | nome
1 | João
2 | Maria
3 | Ana
group
id | grupo
1 | Lorem1
2 | Lorem2
3 | Lorem3
personal_group
id | id_grupo | id_pessoa
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
And I have the following code in my controller to save the changes:
PersonController
$grupo = $request->grupo; //retornando valores dos campos checkbox
for($x = 0; $x < count($grupo); $x++){
array_push($query_grupo, array('id_grupo' => $grupo[$x], 'id_pessoa' => $id));
}
DB::table('grupo_pessoa')->insert($query_grupo);
I need to remove the groups I uncheck from the table and save the selected ones only if they do not already exist.
I tried to use "save" because they say it already does this check but it did not work the way I tried:
$grupo_pessoa = new GrupoPessoa;
for($x = 0; $x < count($grupo); $x++){
$grupo_pessoa->id_grupo = $grupo[$x];
$grupo_pessoa->id_pessoa = $id;
$grupo_pessoa->save();
array_push($query_grupo, array('id_grupo' => $grupo[$x], 'id_pessoa' => $id));
}