2014-11-06 98 views
0

我想要保存一些網頁信息在數據庫中的URL條款,可以顯示在URL中,當該頁面將通過URL訪問。例如。考慮我有一個網站名稱爲www.example.com 現在我在我的網站頁面上說www.example.com/about-usLaravel路由數據庫

現在我想保存網頁關於我們的信息數據庫中說標題,描述和URL_NAME 所以如果我更新關於我們頁面的內容和設置URL_NAME爲「東西 - 關於美」 。

當我從我的網站訪問關於我們的鏈接時。所以它應該重定向到網址爲www.example.com/something-about-us而不是之前的網址www.example.com/about-us。

如何在Laravel中創建這種數據庫保存路線?

感謝您的幫助。

+0

創建'slug'場。然後根據slu build建立網站。像'route('someroute',[$ slug])'....這個$ slug將從數據庫中檢索。所以如果你更新slug,鏈接會自動更新。 – itachi 2014-11-06 14:12:40

+0

是的,我們可以這樣做,但是當我創建這個時,我的路由將會是Route :: get('slug}',函數($ slug){//從db中的代碼顯示頁面並重定向到視圖}) 。那麼它就會像您所建議的那樣爲www.example.com/about-us工作,但是另一條路線的情況是,www.example.com/search應該假設稱爲搜索控制器的索引操作。只是因爲以前的規則是它會叫第一匹配路線。是嗎? – 2014-11-06 14:46:09

+0

當您在搜索之後添加您的slu route路線時,laravel會嘗試首先匹配搜索。 – darthmaim 2014-11-06 15:02:52

回答

0

這是我的想法。我不認爲Laravel爲您的問題提供了這樣的解決方案,但不是100%。

你可以做的是重寫你自己的路徑文件。首先,保存有關數據庫中動態路由的信息,並在更新數據時確保相應的數據庫條目相應地被修改。

其次,請求路由時,搜索數據庫並返回url作爲參數重定向。

恐怕你必須自己做,就像使用Laravel構建apis一樣。如果您有任何問題,我隨時可以提供幫助。

0

我無法測試它在這一刻......但也許你可以這樣做:

Route::get('user/{pageid}', function($pageid) 
{ 
    $page_content = //Search DB for page content with url_name = pageid; 
    return View::make('page.content', array('page_content' => $page_content)); 
});