Stellen gibt es die folgende URL-Struktur:Laravel 4.2 weiterhin Routing
someurl.axyz/{post-slug}
someurl.axyz/{page-slug}
post-slug
und page-slug
sind in der einzigartigen Datenbanktabellenspalte gespeichert. Was ist die "eleganteste" Art, die Strecken mit Laravel 4.2 zu bewältigen (und wenn es einen Unterschied mit Laravel v5.2 gibt)?
Ich löste dies mithilfe von Bindungsparameter zu einem Modell. Der folgende Code befindet sich am Ende der Datei routes.php. Ich würde gerne wissen, ob es für diese Aufgabe eine einfachere Lösung gibt.
Route::bind('directslug', function($value, $route) {
$post = Post::where('slug', $value)->first();
if ($post) {
return $post;
}
$page = Page::where('slug', $value)->first();
if ($page) {
return $page;
}
throw new NotFoundHttpException;
});
Route::get('{directslug}', function(Post $post) {
return $post;
});
Route::get('{directslug}', function(Page $page) {
return $page;
});
App::missing(function($exception) {
return Response::view('error.missing', array('title' => '404 Page not Found'), 404);
});
Für 4.2 müssen Sie den Parameter manuell binden, wie Sie es getan haben, und 5.2 bindet es aus der Box. – TheFallen