Laravel France

Relation belongsTo charger select box à partir de la base de donnée

  • Avatar de YannickJohansson
    Membre depuis :
    21/12/2017
    Messages :
    3

    Bonjour,
    j'ai une table produit :

    • id
    • name
    • date_operation
    • category_id (clé étrangère de la table catégorie)

    Table Catégorie

    • id
    • name
    • descritpion

    dans la view addProdcut je voudrais afficher une select box qui contient les noms des catégories de la table catégorie.

    Mais j'ai cet erreur :

    Undefined variable: categories (View: C:\xampp\htdocs\Blg\resources\views\addProduct.blade.php)

    Mon controller :

    CreatesController.php

    public function add(Request $request)
    {
    $categories = Categories::all();
    $products = new Product;
    $products->name = $request->input('name');
    $products->date_operation = $request->input('date_operation');
    $products->category_id = $request->input('category_id');
    $products->save();
    return redirect('/')->with(['categories' => $categories]);

    }

    view :

    AddProduct.balde.php

    <div class="form-group">
    <label for="inputPassword" class="col-lg-2 control-label"></label>
    <div class="col-lg-10">
    <input type="text" name ="name" class="form-control" id="" placeholder="">
    </div>
    </div>

    <div class="form-group">
    <label for="textArea" class="col-lg-2 control-label">categorie</label>
    <div class="col-lg-10">
    @foreach($categories as $categorie)
    <option value="{{ $categorie->id }}">{{ $categorie->name }}</option>
    @endforeach
    </div>
    </div>
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2285

    Salut,

    Montre la méthode du contrôleur qui appelle cette vue AddProduct.

  • Avatar de YannickJohansson
    Membre depuis :
    21/12/2017
    Messages :
    3

    Salut
    La méthode du controller c'est la fonction add :

    public function add(Request $request)
    $categories = Categories::all();
    $products = new Product;
    $products->name = $request->input('name');
    $products->date_operation = $request->input('date_operation');
    $products->category_id = $request->input('category_id');
    $products->save();
    return redirect('/')->with(['categories' => $categories]);
    }
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2285

    Ah je comprends...

    Là tu fais une redirection en flashant des données dans la session, donc pour récupérer ça dans la vue tu dois aussi passer par la session :

    session('categories')

    Ce n'est pas comme quand tu transmets quelque chose en utilisant view.

Vous ne pouvez pas répondre à ce sujet.