2016-04-22 8 views
2

Ich bin ein Blog mit Kommentaren, die mit verschiedenen Teilen meiner Seiten verknüpft sind. Um zu einem Kommentar zu verlinken, schauen Sie sich zuerst meine routes-Datei an.Laravel - URLs mit ID und Slugs - bequeme Möglichkeit, etwas zu verknüpfen

Meine Route-Datei:

Route::group(['prefix' => '{id}/{slug}'], function() { 
     Route::get('/', '[email protected]')->name('blog.show'); 
     Route::get('edit', '[email protected]')->name('blog.edit'); 
     Route::post('edit', '[email protected]')->name('blog.edit.save'); 
     Route::get('comments/{id}', '[email protected]')->name('blog.comments.edit'); 
     Route::post('comments/{id}', '[email protected]')->name('blog.comments.save'); 
    } 

Das Problem ist nicht die Routen. Es sind die Ansichten und die Formen. Um auf einen einzelnen Kommentar zu verweisen, muss ich dies tun.

<a href="{{ route('blog.comments.edit', [$comment->blog->id, $comment->blog->slug, $comment->id]) }}"> View Comment </a> 

Wie Sie sehen können, ist es ein Schmerz, einen Link zu einem Kommentar zu verknüpfen. Wie kann ich das besser machen? Stellen Sie sich vor, Sie haben 20 davon auf meiner Website.

Danke!

+0

Warum Ihre eigenen Helfer nicht schaffen, die das Kommentar-Objekt als Parameter akzeptiert? –

Antwort

0

Sie könnten es an Ihr Kommentarmodell delegieren.

In Ihrem Kommentar Modell:

public function getUrlParams() { 
    return [ 
    $this->blog->id, 
    $this->blog->slug, 
    $this->id 
    ]; 
} 

Dann Ihre Ansicht:

<a href="{{ route('blog.comments.edit', $comment->getUrlParams()) }}"> View Comment </a> 
Verwandte Themen