我正在創建一個列出產品的Laravel 5.1應用程序。現在數據庫中的每個產品都具有產品詳細信息頁面的網址。我做了一個方法,導出所有這些URL並將它們轉換爲laravel路由,並將這些路由寫入一個文件幷包含在laravel路由中。我已經這樣做了,以便能夠使用laravel的路由優化路由:緩存命令。現在我的問題實際上是關於優化,哪種方式會更好,有一個包含所有路由的文件,比方說100K路由,或者有一個入口點來比較數據庫中有問題的路由並返回相應的產品。Laravel路由的優化建議
回答
沒有必要爲每個產品制定單獨的路線。可能在數據庫中存儲一個獨特的slug(語義URL)?然後有一條路線根據傳遞給路線的內容顯示產品。
用戶友好的slu could可能就像't恤-9000'。如果你不想要這個,你可以使用你已經爲數據庫中的產品設置的唯一ID。
在您的show方法中,您需要使用向數據庫發送請求的數據庫查詢數據庫。
簡單的例子:
在routes.php文件
Route::get('/products/{product}', '[email protected]');
產品控制器
public function show($product)
{
$productRequested = Product::where('url_slug', $product)->first();
// Do whatever from here
}
是的!這個。除了在路由中調用參數'product',而在控制器中調用$ productRequested'。可能想解決這個問題。 – Here2Help
是的,我忘了它需要命名相同。固定! –
它不需要命名相同,但可能不太令人困惑。 – user3158900
的事實,你用你將被強制執行的框架來優化你的代碼
路線文件允許您以最快的方式來最小化映射UR的數量LS。
通過的Symfony提供給laravel讓你操縱你的URL的所有變量與一個單一的路由路徑的概念,例如:
route::get('{category}/{id}/{slug}/{var1}/{var2}/{var3}/{varX}','[email protected]');
這條航線將派出在url中所有變量yourMethod();
- 1. Laravel優先路由
- 2. 優化建議?
- 3. 路由表優化
- 4. Perl優化建議
- 5. Laravel路由的搜索引擎優化路徑/表
- 6. 優化建議的Javascript
- 7. 優化Rails路由定義
- 8. zend路由器優化
- 9. 建議優化MySQL查詢
- 10. 建議優化代碼
- 11. SQL查詢優化建議
- 12. 在Laravel路由上設置協議
- 13. SQLite的select語句的優化建議
- 14. 關於優化C#代碼的建議
- 15. 需要優化此代碼的建議
- 16. 優化此代碼的任何建議?
- 17. 優化視頻解碼器的建議
- 18. 關於Rails 3的建議 - 路由 - Restfull
- 19. Kohana - 需要關於路由的建議
- 20. 關於大量路由的建議
- 21. Laravel優化
- 22. 優化,減少冗餘路由瓶
- 23. 路由Laravel
- 24. 需要Lucene查詢優化建議
- 25. NHibernate性能優化|建議邀請!
- 26. 3表加入 - 優化建議?
- 27. 優化MySQL表結構。需要建議
- 28. 優化查詢或建議LINQ等效
- 29. 在laravel路由未定義的路由
- 30. Laravel 5路由的所有路由
後者。不要創建一個gazillion路線。簡化您的路線,讓它們包含一個參數,然後將其用於數據庫查找。絕對。 – Here2Help
@ Here2Help,我不太確定我完全同意這一點,在請求中添加數據庫查找只是增加了請求時間,甚至可能會對性能造成不利影響。也許一堆緩存將有助於這種情況,但我認爲這是一個壞主意。 – vsharper
@vsharper查找數據庫正是產品驅動的網站應該做的事情。什麼,你認爲他每次添加新產品時都應該更新他的路線文件?也許不妨建立一個靜態網站,然後忘記Laravel和PHP。 – Here2Help