想象有以下 url 结构:
someurl.axyz/{post-slug}
someurl.axyz/{page-slug}
post-slug
并page-slug
存储在唯一的数据库表列中。使用 Laravel 4.2 处理路线的“最”优雅的方式是什么(如果与 Laravel v5.2 的方式有所不同)?
我使用绑定参数到模型解决了这个问题。以下代码位于 routes.php 文件的底部。我想知道这个任务是否有更简单的解决方案。
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);
});