2017-07-06 2 views
2

Ich bin neu bei Laravel 5.4 und php und ich habe einige Probleme mit meinem Routing, also wünschte ich, du würdest mir erklären, was vor sich geht!Fehlende Parameter für [Route: homepage.edit] mit Link im Layout

Ich entwickle ein Back-Office für meine zukünftigen Projekte, und für mein aktuelles Projekt muss ich in der Lage sein, die auf die Homepage gesendeten Daten zu aktualisieren. Die Bearbeitung der Seite und die Aktualisierung der Daten ist jetzt voll funktionsfähig, ich habe nur einige Probleme, den Link im Layout zu machen. Ziemlich sicher, dass es ein triviales Problem ist, aber ich habe Schwierigkeiten, es herauszufinden.

ist hier mein Code:

web.php:

Route::group(['prefix' => 'admin', 'middleware' => 'admin'], function() 
{ 
    Route::resource('homepage', 'Admin\HomeController'); 
}); 

Homecontroller: `

public function edit($id) { 
    $contentExists = Homepage::first(); 
    $homepage = Homepage::findOrFail($id); 
    return view('admin/homepage/edit', compact('homepage', 'contentExists')); 
}` 

Im Layout:

<ul class="list-unstyled"> 
<li> 
    <a href="{{ route('homepage.edit') }}">Page d'accueil</a> 
</li>       
</ul> 

Jetzt, denn ich weiß, Ich muss einen Parameter übergeben r auf die Strecke, so dass ich in etwa so:

<ul class="list-unstyled"> 
<li> 
    <a href="{{ route('homepage.edit', $homepage) }}">Page d'accueil</a> 
</li>     
</ul> 

Aber dann sagt es die Homepage Variable nicht definiert ist, und ich habe keine Ahnung, wo ich diese Variable definieren kann, da ich im Layout bin, und auch habe keine Ahnung, was in dieser Variablen sein muss, was ist seine Bestimmung ... Kannst du mir dabei helfen?

+0

Nun, ich denke, dass die Homepage nicht die Variable zurückgibt, weil Sie Homepage verwenden :: findorfail ($ id) dann, wenn er es tut Existieren, wenn sie fehlschlagen und nicht an die Ansicht übergeben werden. – m33bo

+0

Aber das ist in der HomeController, die Variable über den Link im Layout der Startseite übergeben, der Controller nicht mit dieser Ansicht – GBCrafty

+0

Wenn Sie nur versuchen, den Link zu bekommen, anstatt mit 'route ('', ' ') 'versuche' URL :: route() 'mit den relevanten Parametern zu verwenden. – m33bo

Antwort

2

Route zweite Parameter muss ein Array wie folgt zum Beispiel sein:

route('homepage.edit', ['id' => 2]) 
+0

Ich sehe besser, wie es funktioniert! Wie kann ich es dynamisch machen, damit ich [id => $ homepage-> id] machen kann? – GBCrafty

+0

Ich fand es, obwohl ich nicht denke, das ist der beste Weg, es zu tun, ich öffnete die Blade @ PHP und definiert die Homepage-Variable gleich den Daten aus dem Modell und nannte dann die ID im Array! Danke für deine Hilfe :) – GBCrafty

+0

in $ homepage sollte ein Ergebnis statt eloquent collection.You können versuchen, diesen Befehl ['id' => $ homepage-> first() -> id] – Nutscracker

Verwandte Themen