迅睿CMS框架是一款PHP8高性能·簡單易用的CMS開源開發(fā)框架,基于MIT開源許可協(xié)議發(fā)布,免費(fèi)且不限制商業(yè)使用,是免費(fèi)開源的產(chǎn)品,以萬端互聯(lián)為設(shè)計理念,支持的微信公眾號、小程序、APP客戶端、移動端網(wǎng)站、PC網(wǎng)站等多終端式管理系統(tǒng)。
聯(lián)系官方銷售客服
1835022288
028-61286886
目的實現(xiàn)自定義內(nèi)容頁url
函數(shù)代碼寫好,如下:
前臺url解析出來,內(nèi)容頁鏈接也實現(xiàn)了標(biāo)題轉(zhuǎn)拼音
最后問題來了,偽靜態(tài)規(guī)則不知道怎么寫。求助大神~
你這個函數(shù)需要優(yōu)化,title已經(jīng)存在于data,為什么還要查詢一次,多此一舉了
回復(fù)@平平
是的我也注意到了~ 多查一次數(shù)據(jù)庫,這個不影響。
問題是偽靜態(tài)規(guī)則不知道該怎么寫?
這個偽靜態(tài)沒辦法直接查詢,因為wang.....kan這幾個字符并沒儲存到數(shù)據(jù)庫,就沒辦法直接查詢了,只能這樣辦,把數(shù)據(jù)庫記錄全部查詢出來,再循環(huán)遍歷,然后一個個的對比title的配音字符,比較消耗資源,數(shù)據(jù)一旦多了,訪問相當(dāng)緩慢
我建議的方案是 專門建一個自定義字段來儲存wang...kan這幾個字符,然后再一次性查詢這幾個字符的記錄
回復(fù)@易學(xué)習(xí)
如果是新建一個字段來做url偽靜態(tài),類似{dirname}這樣的、 個人覺得官方出這個自定義函數(shù)方法就有點(diǎn)多余了~
感覺要用到Routes.php,目前關(guān)于自定義函數(shù)url這一塊文檔資料少。
感謝回復(fù)~
我知道怎么做了,你用了自定義函數(shù),這就好辦了,改進(jìn)一下自定義函數(shù)就行,解析規(guī)則也需要改一下配置,不難
分享下
1、這里需要改進(jìn)
在return之前 加一句 \Phpcmf\Service::L("L")->set_file("xs_news_".$pinyin, $data['id'], "xs_news");
2、這個是對的,可以這樣寫
3、打開news模塊文件dayrui/App/News/Controllers/Show.php
<?php namespace Phpcmf\Controllers; /** * 二次開發(fā)時可以修改本文件,不影響升級覆蓋 */ class Show extends \Phpcmf\Home\Module { public function index() { $this->_module_init(); $id = \Phpcmf\Service::L('Input')->get('id'); if ($cid = \Phpcmf\Service::L("L")->get_file("xs_news_".$id , "xs_news")) { $id = $cid; } $this->_Show( (int)$id, [ 'field' => dr_safe_replace(\Phpcmf\Service::L('Input')->get('field')), 'value' => dr_safe_replace(\Phpcmf\Service::L('Input')->get('value')), ], max(1, (int)\Phpcmf\Service::L('Input')->get('page')) ); } public function time() { $this->_module_init(); $this->_MyShow( 'time', (int)\Phpcmf\Service::L('Input')->get('id'), max(1, (int)\Phpcmf\Service::L('Input')->get('page')) ); } public function recycle() { $this->_module_init(); $this->_MyShow( 'recycle', (int)\Phpcmf\Service::L('Input')->get('id'), max(1, (int)\Phpcmf\Service::L('Input')->get('page')) ); } public function draft() { $this->_module_init(); $this->_MyShow( 'draft', (int)\Phpcmf\Service::L('Input')->get('id'), max(1, (int)\Phpcmf\Service::L('Input')->get('page')) ); } public function verify() { $this->_module_init(); $this->_MyShow( 'verify', (int)\Phpcmf\Service::L('Input')->get('id'), max(1, (int)\Phpcmf\Service::L('Input')->get('page')) ); } }
筆誤 \Phpcmf\Service::L("L")改成 \Phpcmf\Service::L("cache")
回復(fù)@黃老邪
自定義函數(shù)
News控制器Show.php文件
偽靜態(tài)規(guī)則
調(diào)試再三還是
樓上可以,和我的思路差不多
問題還是在偽靜態(tài)這里
一個是id一個是拼音 不相等了
所以url沒用上這一條規(guī)則,傳不了參數(shù)值~
修改這個文件/dayrui/Core/Controllers/Show.php 問題解決~
你這個函數(shù)需要優(yōu)化,title已經(jīng)存在于data,為什么還要查詢一次,多此一舉了
回復(fù)@平平
是的我也注意到了~ 多查一次數(shù)據(jù)庫,這個不影響。
問題是偽靜態(tài)規(guī)則不知道該怎么寫?
這個偽靜態(tài)沒辦法直接查詢,因為wang.....kan這幾個字符并沒儲存到數(shù)據(jù)庫,就沒辦法直接查詢了,只能這樣辦,把數(shù)據(jù)庫記錄全部查詢出來,再循環(huán)遍歷,然后一個個的對比title的配音字符,比較消耗資源,數(shù)據(jù)一旦多了,訪問相當(dāng)緩慢
我建議的方案是 專門建一個自定義字段來儲存wang...kan這幾個字符,然后再一次性查詢這幾個字符的記錄
回復(fù)@易學(xué)習(xí)
如果是新建一個字段來做url偽靜態(tài),類似{dirname}這樣的、 個人覺得官方出這個自定義函數(shù)方法就有點(diǎn)多余了~
感覺要用到Routes.php,目前關(guān)于自定義函數(shù)url這一塊文檔資料少。
感謝回復(fù)~
我知道怎么做了,你用了自定義函數(shù),這就好辦了,改進(jìn)一下自定義函數(shù)就行,解析規(guī)則也需要改一下配置,不難
回復(fù)@易學(xué)習(xí)
分享下
1、這里需要改進(jìn)
在return之前 加一句 \Phpcmf\Service::L("L")->set_file("xs_news_".$pinyin, $data['id'], "xs_news");
2、這個是對的,可以這樣寫
3、打開news模塊文件dayrui/App/News/Controllers/Show.php
筆誤 \Phpcmf\Service::L("L")改成 \Phpcmf\Service::L("cache")
回復(fù)@黃老邪
自定義函數(shù)
News控制器Show.php文件
偽靜態(tài)規(guī)則
調(diào)試再三還是
樓上可以,和我的思路差不多
問題還是在偽靜態(tài)這里
一個是id一個是拼音 不相等了
所以url沒用上這一條規(guī)則,傳不了參數(shù)值~
修改這個文件/dayrui/Core/Controllers/Show.php 問題解決~