2017-06-09 6 views
1

Ich habe versucht, dieses Problem seit zwei Tagen zu lösen, aber kein Glück. Ich mache eine Update-Methode auf meinem Article haben, die die Artikel auf meiner Datenbank zu aktualisieren verantwortlich ist:Route Modell Bindung funktioniert nicht auf Laravel

public function update(Article $articles, ArticleRequest $request){ 

    $article = Article::findOrFail($articles); 

    $article->update($request->all()); 

    return redirect('articles'); 
    } 

Hier meine Klinge Datei ist es, diese Ergebnisse zu zeigen:

@extends('app') 




@section ('content') 
<div class="container"> 

<h1>Edit: {{$article->title}}</h1> 



{!!Form::model($article,['method'=>'PATCH', 'action'=>['[email protected]', $article->id] ])!!} 
@include('pages.partials', ['submitButtonText' => 'Edit Article']) 


{!!Form::close()!!} 
@include('errors.error') 

</div> 


@endsection 

ich Fehler Artikel var doesnt bekommen existiert.

+0

können Sie $ article = Article :: findOrFail ($ articles) entfernen; –

Antwort

1

Wenn Sie die Routenmodellbindung einrichten, ruft Laravel hinter den Kulissen die entsprechende Modellinstanz für Sie ab und übergibt sie an Ihre Controller-Methode. In Ihrem Beispiel repräsentiert das Argument Article $articles eine Instanz des Artikelmodells - nicht nur die ID. Daher ist die folgende Zeile sowohl unnötig (da Sie bereits das entsprechende Modell Instanz) und falsch (da findOrFail eine ganze Zahl erwartet an sie übergeben werden - keine Modellinstanz):

$article = Article::findOrFail($articles); 

Ich würde ändern Sie Ihre Controller-Methode zu sein:

public function update(Article $articles, ArticleRequest $request) 
{ 
    $articles->update($request->all()); 

    return redirect('articles'); 
} 

Wenn Sie immer noch Probleme damit haben, „die and-Dump“ Ihre $articles Variable, um sicherzustellen, Sie haben Route-Modell richtig eingestellt Bindung auf.

Verwandte Themen