Projets Laravel France

Problème d'affichage d'element de clé etrangère dans la vue qui est mon formulaire de creation

  • Avatar de BarnabéTebda
    Membre depuis :
    18/10/2018
    Messages :
    46

    Bonsoir à tous.. Je veux obtenir l'affichage d'un element de la clé etrangère d'une de mes tables dans un formulaire pour pouvoir completer l'insertion au niveau de la table, mais j'obtiens une errur dont je cherche la solution mais toujours pas de reponse. quelqu'un pourrait bien m'aider à resoudre mon probleme... Merci d'avance.

    Voici lerreur qui s'affiche:
    "Undefined variable: appelapropositions (View: C:\wamp64\www\PROGES1\resources\views\projets\create.blade.php)"

    ceci est mon modele

    <?php

    namespace App\Models;

    use Illuminate\Database\Eloquent\Model;

    class Projet extends Model
    {

    public $table = 'projets';

    public $fillable = [

    'titreProjet',
    'motCleProjet',
    'montantDemande',
    'resumeProjet',
    'dureeProjet',
    'appelaproposition_id'

    ];
    public function appelaproposition()
    {
    return $this->belongsTo('App\Models\Appelaproposition');
    }

    Mon controleur d'insertion

    public function store(Request $request)
    {
    $appelapropositions = Appelaproposition::lists('themePrioritaireRecherche', 'id');

    }
    Mon formulaire de creation

    <div class="form-group">
    <label for="appelaproposition_id" class="offset-1">choisir lappel correspondant :</label>
    <select name="appelaproposition_id" id="appelaproposition_id" class="form-control col-lg-4 offset-1">
    @foreach( $appelapropositions as $appelaproposition)
    <option
    value="{{ $appelaproposition->id }}">
    {{ $appelaproposition->themePrioritaireRecherche }}
    </option>
    @endforeach
    </select>
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2549

    Bonjour,

    On pourrait voir le code qui appelle la vue ?

  • Avatar de BarnabéTebda
    Membre depuis :
    18/10/2018
    Messages :
    46

    Voici le code qui appelle la vue

    Route::resource('projets', 'Controleurs\ProjetController');
    Route::post('/appelapropositions/create/{id}', 'Controleurs\ProjetController@store')->where('id','[0-9]+');

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2549

    Je parle du code qui envoie la vue genre return view(...), parce que c'est là qu'on transmet les données, ou pas...

  • Avatar de BarnabéTebda
    Membre depuis :
    18/10/2018
    Messages :
    46

    Ah d'accord. voici.
    return view('projets.create');
    La vue create se trouve dans un dossier nommé projets.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2549

    Oui alors tu ne transmets pas de données à la vue, donc normal qu'elle se plaigne de ne pas en avoir !

  • Avatar de BarnabéTebda
    Membre depuis :
    18/10/2018
    Messages :
    46

    Ah okok. Une aide sur pour pouvoir gerer cette transmission de données.
    Merci d'avance.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2549

    Ca dépend ce que tu veux obtenir, par exemple s'il faut tous les appels à proposition :

    $appelapropositions = Appelaproposition::all();
    return view('projets.create', compact('appelapropositions'));

Vous ne pouvez pas répondre à ce sujet.