1 回答

TA貢獻1830條經(jīng)驗 獲得超9個贊
好問題。
您可以使用多種方法來解決此問題。我會為你詳細介紹一下。
1. 將slug存儲到數(shù)據(jù)庫中
一種選擇是將 slug 名稱存儲在數(shù)據(jù)庫中。就我個人而言,這是我最喜歡的選項,因為您不需要進行任何字符串轉(zhuǎn)換。通過這種方法,我會slug
在您的類別表中放置一列。然后,您可以使用類別雄辯模型來搜索具有該 slug 的類別。
2. 將 slug 轉(zhuǎn)換為標題大小寫
第二個選項是將 slug 轉(zhuǎn)換為標題大小寫。您可以使用 Laravel 的 string 類來做到這一點。例如:
$categoryName = Str::title($slug);
然而,這種方法存在一些問題。首先,創(chuàng)建 slug 時,url 將刪除不安全的字符,例如撇號。這意味著,如果您有復數(shù)類別名稱,則在將 slug 轉(zhuǎn)換回標題大小寫時,它將不匹配。
其次,通過使用代碼轉(zhuǎn)換字符串以匹配數(shù)據(jù)庫中的記錄,您將受到服務類的支配。雖然功能Str::title
不太可能改變,但從理論上講,這可能意味著您必須稍后更改代碼。
結論
總的來說,我建議采用第一種方法。您可以獲得更好的數(shù)據(jù)完整性,并且進一步減少出現(xiàn)問題的可能性。因此,如果我是您,我會創(chuàng)建一個新的遷移,將一列添加slug
到您的類別表中,然后使用自己的 slug 填充每個類別。然后在查詢你的 Eloquent 模型時根據(jù)slug
列搜索類別。
- 1 回答
- 0 關注
- 112 瀏覽
添加回答
舉報