2017-01-23 3 views
2

Ich erhalte diesen Fehler: undefinierte Variable. Ich habe viele Artikel darüber gelesen, aber keiner von ihnen hat mir geholfen. (Why I get "Undefined variable" in Laravel view?)Fehler: undefinierte Variable in Laravel-Ansicht

Dies ist Project_Controller:

class Project_Controller extends Controller 
{ 

public function create() 
{ 
$arrondissement = Arrondissements::pluck('arrondissement', 'id'); 

return view::make('projets.create', compact('arrondissement')); 
} 

public function store(Request $request) 
{ 

    $validator = Validator::make($request->all(), [ 
     'intitule' => 'required|max:255', 
     'code' => 'required|max:255', 
     'dateDebut' => 'required|max:255', 
     'dateFin' => 'required|max:255', 
     'estimation' => 'required|max:255', 
     'arrondissement' => $request->arrondissement, 
    ]);  
if ($validator->fails()) { 
    return back() 
     ->withInput() 
     ->with(['arrondissement'=>$arrondissement]) 
     ->withErrors($validator); 
}    
    $projet = new Projet; 

    $projet->intitule = $request->intitule; 
    $projet->code = $request->code; 
    $projet->dateDebut = $request->dateDebut; 
    $projet->dateFin = $request->dateFin; 
    $projet->estimation = $request->estimation; 
    $projet->arrondissement = $request->arrondissement; 


    $projet->save(); 

    return view('/submit', compact('arrondissement'));  
} 
} 

submit.blade.php:

<select name="arrondissement_id"> 
     @if (!empty($arrondissement))     
      Whoops! Something went wrong     
     @else 
      @foreach($arrondissement as $id => $arrondissement) 
       <option value="{{$id}}">{{$arrondissement}}</option>      
      @endforeach 
     @endif 
</select> 

und das ist routes.php:

Auth::routes(); 

Route::get('/home', '[email protected]'); 

Route::get('/', function() { 
    $projets = \App\Projet::all(); 
    return view('welcome', compact('projets')); 
}); 

Route::get('/submit', function() { 
return view('submit'); 
}); 

Route::post('submit/projects', '[email protected]'); 

Ich kann nicht sehen Was verursacht diesen Fehler?

Ich verwende Arrondissement als Fremdschlüssel der Tabelle Arrondissements

+1

Ihr Project_Controller (wie gepostet) ist PHP gebrochen. Sie starten die Methode 'store()', bevor Sie die Methode 'create()' beenden. – devk

Antwort

0

Ich löste das Problem. Es ist einfach, ich musste Ausrufezeichen entfernen. Weil ich testen muss, ob der Wert leer und nicht leer ist.

2

Wenn die Ansicht zurückkehren, sollten Sie auch die Variable mit Daten übergeben:

$arrondissement = .... 

return view('/submit', compact('arrondissement')); 
+0

habe ich bereits in 'create' Methode ... Ich habe es versucht, aber immer noch nicht funktioniert – Naj

+0

@Naj Sie auch die Ansicht in den Laden 'Methode und in einer Schließung in der Datei routes. –

+0

Ich verstehe es nicht, ich sollte die Ansicht nicht im Laden laden? – Naj

-1
$arrondissement = Arrondissements::pluck('arrondissement', 'id'); 

Sie sollten auch fügen Sie diese Zeile in die Speicherfunktion

+0

Dies funktioniert nicht! – Naj