2016-02-29 41 views
0

我在一個網站上工作,我在流明框架中建設。 我的問題是路由。它像現在一樣有效,但我希望網址看起來更好。流明。更改網址

代碼:

routes.php文件

$app->get('/work/{id}', '[email protected]'); 

WorkController.php

public function getWork($id) { 
    $project = DB::select("SELECT * FROM projects where id = $id"); 
    return view('work.index')->with('project', $project); 
} 

其投資組合類網站,我想獲得一個specifik DB-後通過其ID。 但我希望網址看起來更好。現在,這些網址看起來像:www.site.com/work/2其中2是id。我怎麼可以例如使用db-posts標題字段作爲url?

回答

0

您可以在項目表的每一行中存儲一個urltitle列。這將保存項目的字符串標識符。例如,您可以將項目標題轉換爲小寫,並用短劃線替換每個空格。 (你也必須處理特殊字符)

您的路線是這樣的:

$app->get('/work/{urltitle}', '[email protected]'); 

和您的查詢應該是這樣的:

public function getWork($urltitle) { 
    $project = DB::select("SELECT * FROM projects where urltitle = $urltitle"); 
    return view('work.index')->with('project', $project); 
} 

新的URL的例子將是www.mysite.com/work/my-first-project

希望有所幫助。

+0

謝謝!我意識到這一點,我只是覺得它足夠乾淨。我想實現同樣的事情,而不必添加額外的字段。我想使用現有的領域,並以某種方式解析它在PHP中。 – user2952238

+0

這意味着你將不得不對每個請求做一些額外的計算。例如,您可以使用mysql字符串函數執行我建議的操作,但會降低查詢速度http://dev.mysql.com/doc/refman/5.7/en/string-functions.html。每次用戶加載頁面時,您也必須生成鏈接。存儲uri段並針對它進行查詢將會非常簡單。除非有特定的原因你不能這樣做。我認爲額外的列是最乾淨的選項。 –