簡體   English   中英

Laravel 4.2繼續路由

[英]Laravel 4.2 continue routing

假設有以下網址結構:

someurl.axyz/{post-slug}
someurl.axyz/{page-slug}

post-slugpage-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);
});

我使用路由模型綁定來處理所有事情,與您的解決方案非常相似。

在我看來,您應該為每個路線保留一個單獨的模型,否則,您最終可能會獲得一整頁都相同的帖子……即使我確定您已經做好了這件事。 畢竟,您使用兩條不同的路線,如果有人正在尋找頁面,為什么還要始終查詢帖子?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM