Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

La vue

<div class="form-group m-b-20">
                                            <label for="marque">Marques</label>
                                            <select class="select2 form-control " multiple="multiple" multiple data-placeholder="Choose ..." name="marque_id" style="width: 50%">
                                             @foreach ($marques as $marque)
                                                <option value="{{$marque->id}}">{{$marque->title}}</option>
                                                @endforeach
                                            </select>
                                            </div>

Mon controlleur

public function store(Request $request)
  {

    foreach($request->get('marque_id') as $m)
    {
    $link=new Linkusersmarques;
    $link->user_id=$request->get('user_id');
    $link->marque_id=$m;
    $link->save();
  }
    return redirect ('gestion_des_marques');
  }

Pour chaque valeur selectionnée dans la select je veux faire l'ajout des données dans ma table. Mais j'ai cet erreur: Invalid argument supplied for foreach()

4 réponses


Perfectos
Réponse acceptée

Nomme ton select marque_id[] et ne change rien à ton code php.

Bonjour, essais de faire

dd($request->get('marque_id'))

avant ton foreach pour voir ce que ça te donne.

J'ai fait comme ça

public function store(Request $request)
  {

    foreach(dd($request->get('marque_id')) as $m)
    {
    $link=new Linkusersmarques;
    $link->user_id=$request->get('user_id');
    $link->marque_id=$m;
    $link->save();
  }
    return redirect ('gestion_des_marques');
  }

ça m'a donné 3 (le nombre de marques que j'ai selectionné dans la select)

ça marche mercii bien :) (quelle faute stupide hh)