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
BarnabéTebda

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>
            
            
            
Posté il y a 1 an
Avatar de bestmomo
bestmomo

Bonjour,

On pourrait voir le code qui appelle la vue ?

Posté il y a 1 an
Avatar de BarnabéTebda
BarnabéTebda

Voici le code qui appelle la vue

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

Posté il y a 1 an
Avatar de bestmomo
bestmomo

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

Posté il y a 1 an
Avatar de BarnabéTebda
BarnabéTebda

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

Posté il y a 1 an
Avatar de bestmomo
bestmomo

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

Posté il y a 1 an
Avatar de BarnabéTebda
BarnabéTebda

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

Posté il y a 1 an
Avatar de bestmomo
bestmomo

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'));
Posté il y a 1 an

Vous ne pouvez pas répondre à ce sujet.