第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Laravel 中將 slugged url 傳遞給控制器

如何在 Laravel 中將 slugged url 傳遞給控制器

PHP
拉風的咖菲貓 2023-08-11 17:42:56
大家好,我是 Laravel 的新手,目前我正在嘗試將一個 slugged url 傳遞到我的控制器中,但我遇到了問題。我有一個類別表,所有類別都循環(huán)并顯示在視圖頁面(/帖子)上。我在此視圖中列出了所有類別,以便當用戶單擊某個類別時,他們將被帶到另一個頁面,顯示屬于該類別的所有帖子(例如,/posts/category/{categoryID})。我知道我可以通過將類別 id 傳遞到控制器并找到 id 傳遞回該視圖來完成此操作。然而,我正在嘗試做一些不同的事情。我希望將類別名稱而不是 id 傳遞給控制器。例如,/posts/category/{類別名稱}。但由于有些類別不僅僅是一個詞(例如干洗),這對我來說是一個挑戰(zhàn)。我之前出于 SEO 目的而使用了 URL(例如 /posts/category/{Str::str(categoryname)}),并從 web.php 文件中創(chuàng)建了一條 get 路由?,F(xiàn)在,我想獲取與傳入的類別名稱相關的所有帖子。問題是類別名稱被打亂。有沒有辦法從傳遞到控制器的名稱中刪除slug(“-”或連字符)?因此,它將返回為與數(shù)據(jù)庫中的名稱匹配的“干洗”,而不是“干洗”。我試圖避免將 id 傳遞給 url。
查看完整描述

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列搜索類別。


查看完整回答
反對 回復 2023-08-11
  • 1 回答
  • 0 關注
  • 112 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號