iT邦幫忙

0

[PHP] [Laravel] [Blade] 利用正規表示法,根據不同的網址,顯示特定的元素。

目標:
根據前一頁的網址,來決定目前所處的頁面,顯示哪個按鈕。假如已經收藏某個東西的話,就不用再顯示"收藏"的按鈕了,換湯不換藥,"加入"也是如此。

原本的做法:
https://ithelp.ithome.com.tw/upload/images/20201107/20131801HpU7kfx9NO.png

說明:
在if中,我用url()→previous()取得上一頁的網址,接著將該網址和後面的網址比對,後面網址中的A B C代表三個不同的文字,分別指向不同的網址,例如,後面的save表示我已經收藏A B C其中一項,因此在目前所處的頁面,只需要顯示加入的按鈕就行了。

遇到的問題:
我試著用類似正規表示法[A B C]以及[a-zA-Z]解決這個問題,卻沒辦法順利執行。

解決方式:
https://ithelp.ithome.com.tw/upload/images/20201107/20131801f9zz12UzJp.png

說明:
後來我利用了正規表示法中的"preg_match",將模型擺在第一個,字串擺在第二個。當preg_match結果為1(代表有找到),就能順利顯示對應的按鈕了。

參考資料:
https://laravel.io/forum/05-10-2015-it-is-possible-to-use-regular-expressions-within-blade-master-layout-if-statements-or-conditions


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
firecold
iT邦新手 1 級 ‧ 2020-11-09 10:40:07

我假設收藏的是文章好了
用網址判斷不是很好....
尤其文章的網址又是很容易被轉發的

如果其他功能的話...當我沒說

哈嘍firecold,謝謝你提供很棒的建議。
用網址判斷確實不是很好XD。
不過因為我目前正在勾勒網站的雛形,所以很多小細節的地方會在之後做調整優化 : )
這個部份我已經marked起來了,謝謝你啦!

我要留言

立即登入留言