国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman遇到的視圖賦值問(wèn)題,求解答

xiaobai1

前提:數(shù)據(jù)庫(kù)使用的是thinkorm,視圖使用的也是thinkphp的。

新增和編輯都使用的同一個(gè)edit.html,在這個(gè)html里面,有類似于
<input type="text" name="name" value="{$info.name}" />

這么一段。

正確的效果是:點(diǎn)擊新增的時(shí)候,這時(shí)候value是空。點(diǎn)擊編輯的時(shí)候,php根據(jù)id獲取到info,輸入到視圖里面,就會(huì)顯示出正確的值。

但是目前遇到了這種情況,不知道是否是因?yàn)槌qv內(nèi)存導(dǎo)致的:

當(dāng)我點(diǎn)擊編輯之后,頁(yè)面會(huì)顯示出value的值,后續(xù)關(guān)閉了該頁(yè)面。再次點(diǎn)擊【新增】按鈕,重新進(jìn)入該頁(yè)面的時(shí)候,有一定的概率會(huì)重新顯示出這個(gè)value的值。也就是說(shuō)時(shí)有時(shí)無(wú)。并且這個(gè)value的值,應(yīng)該都是(目前一直都是)最后一次編輯的那個(gè)的值,感覺(jué)就好像這個(gè)值沒(méi)有被銷毀,還一直存在著,但是并不是每次【新增】它都一定出現(xiàn),很奇怪,請(qǐng)求解答一下,謝謝了!

3443 2 0
2個(gè)回答

walkor 打賞

模版變量不會(huì)常駐內(nèi)存。
這個(gè)問(wèn)題可能是業(yè)務(wù)bug。

  • xiaobai1 2021-01-13

    我重新安裝了一個(gè)webman寫了個(gè)測(cè)試demo,如果用原生模板引擎是沒(méi)有任何問(wèn)題的,切換到think-template就會(huì)出現(xiàn)這個(gè)問(wèn)題,可能是think-template的問(wèn)題或者是兩者不兼容吧

xiaobai1

經(jīng)過(guò)測(cè)試發(fā)現(xiàn),如果模板引擎選擇了ThinkTemplate,會(huì)出現(xiàn)以下問(wèn)題:

假設(shè)有2個(gè)頁(yè)面,分別為a.html和b.html

a方法里面 return view('index/a');
b方法里面 return view('index/b', ['name' => 'wo shi b']);

a.html 和 b.html 里面的內(nèi)容都是 : {$name}

如果先訪問(wèn)a,會(huì)報(bào)錯(cuò),因?yàn)闆](méi)有name變量。
訪問(wèn)b,會(huì)輸出 wo shi b
關(guān)鍵來(lái)了,如果此時(shí)再次訪問(wèn)a,也會(huì)輸出 wo shi b

如果等待一定的時(shí)間重新訪問(wèn)a,a會(huì)報(bào)錯(cuò)。

也許是ThinkTemplate對(duì)變量進(jìn)行了緩存(但是我沒(méi)有找到相關(guān)的關(guān)閉方式,試了配置項(xiàng)的緩存,好像也沒(méi)起作用),當(dāng)你定義了一個(gè)變量,在一定的時(shí)間內(nèi),你如果訪問(wèn)其他的頁(yè)面,如果此頁(yè)面也有這個(gè)變量(雖然都是name,但是可能代表的含義并不同),并且此頁(yè)面的變量在某種情況下沒(méi)有被重新賦值的話,會(huì)導(dǎo)致業(yè)務(wù)錯(cuò)誤,b的name會(huì)錯(cuò)誤的顯示到a的頁(yè)面中。

如果業(yè)務(wù)代碼很嚴(yán)謹(jǐn)?shù)脑挘挂膊粫?huì)出現(xiàn)這種問(wèn)題。例如將a改為 return view('index/a', ['name' => '']);

雖然說(shuō)和自己的代碼嚴(yán)謹(jǐn)性有關(guān),但是使用原生、Twig都不會(huì)出現(xiàn)這種情況,所以也和ThinkTemplate有一定關(guān)系吧,正常來(lái)說(shuō),走完這個(gè)頁(yè)面,生命周期應(yīng)該結(jié)束,變量也就不應(yīng)該繼續(xù)存在了,也可能是有配置項(xiàng)我沒(méi)有發(fā)現(xiàn)吧

稍微整理了一下,希望其他人不要遇到這個(gè)問(wèn)題了,如果遇到了,可以在這里找到答案。如果有其他解決方案,希望可以留言解惑,謝謝啦

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??