2017-10-10 1 views
0

Ich bin neu in Laravel. Mit Version 5.4 und versucht zu suchen, aber nicht sehen, was ich falsch mache. Ich bekomme immer eine "Undefinierte Variable: Post" aus meiner Sicht. Ich mache auch Formmodellbindung. Die Modellbindung funktioniert ordnungsgemäß, wenn Sie die URL manuell eingeben. Kann einfach nicht auf den Link klicken, um die Bearbeitungsansicht aufzurufen.Laravel undefine Variable in Sicht

Meine Routen:

Route::get('test/{id}/edit','[email protected]'); 

Mein Controller:

public function edit($id) 
{ 
    $post = Post::find($id); 

    if(!$post) 
     abort(404); 
    return view('test/edit')->with('test', $post); 
} 

Meine Form:

{{ Form::model($post, array('route' => array('test.update', $post->id), 'files' => true, 'method' => 'PUT')) }} 
+0

Sie geben den Inhalt von '$ post' als' 'test'' zurück - Sie können also in Ihrer Ansicht auf diese Variable zugreifen, in diesem Fall mit' $ test' anstelle von '$ post'. – CodeBrauer

Antwort

0

Ihr Regler eine Variable sendet dem Namen "Test", aber Ihre Fehler sagt, dass Ihre Blade-Datei nicht die Variable $post enthält. Dies kann durch Ändern von "Test" zu "Post" in Ihrem Controller behoben werden.

3

Sie die Post-Wert 'Test' zuweisen, sollte so zugänglich sein mit $test anstatt $post.

Sie wollen wahrscheinlich stattdessen eine dieser beiden Dinge zu tun:

return view('test/edit')->with('post', $post); 

oder

return view('test/edit', ['post' => $post]); 

https://laravel.com/docs/5.4/views