各位大神:请问 thinkphp5 在行为里怎样获取当前请求方法的模板文件呀?

2018-08-04 09:28:05 +08:00
 abccccabc

各位大神:请问 thinkphp5 在行为里怎样获取当前请求方法的模板文件呀?

注:实际模板文件可能不是方法名

3848 次点击
所在节点    PHP
14 条回复
eluotao
2018-08-04 09:38:00 +08:00
这个应该发在 thinkphp 社区吧.
hsr
2018-08-04 09:45:14 +08:00
$request
abccccabc
2018-08-04 09:58:12 +08:00
@eluotao 你忘记了,这里大牛也比较的多些。
kenorizon
2018-08-04 10:20:47 +08:00
https://github.com/top-think/framework/blob/5.1/library/think/view/driver/Think.php#L115
定位模板文件的函数在这里 不过是 private 的 不能直接调用到
vacker
2018-08-04 11:05:55 +08:00
模板可以传变量否?
abccccabc
2018-08-04 11:08:25 +08:00
@vacker 其实在行为里我只需要知道模板文件地址,要判断是否模板文件有更新。仅此而已。
linxiaojialin
2018-08-05 02:26:05 +08:00
不用判断这个吧,修改了视图文件就会自动更新的,如果请求时还没更新,可能是 PHP 开了缓存模块,得等几分钟。或可能改错了文件了。
realpg
2018-08-05 17:19:13 +08:00
@abccccabc #3
大牛并不用 thinkphp
abccccabc
2018-08-06 08:57:16 +08:00
@linxiaojialin 判断这个是因为某些页面我设置的静态缓存可能会大些,如果此时修改了模板文件,但不检查模板文件的时间,那么静态缓存是不会更新的。
linpf
2018-08-06 09:40:44 +08:00
@realpg 不认同
linpf
2018-08-06 09:53:47 +08:00
@abccccabc 目前的框架应该是无法获取到模板文件地址的,除非使用的默认路径。如果不使用默认路径,需要在$this->fetch()方法中的第一个参数传输需要解析的文件。但是这个内容只在 fetch 方法中进行处理,并没有存到任何全局变量或者全局对象属性当中。所以如果需要实现你的想法,那么需要改动一下框架,在 fetch 方法中进行你的判断和更新。
abccccabc
2018-08-06 10:33:32 +08:00
@linpf 如果只能在 fetch 方法里实现,那静态缓存几乎相当于没用。

再等等,看有没有高人出现。这个静态缓存可以大大加快浏览速度。非常有用。
linpf
2018-08-06 11:16:43 +08:00
@abccccabc 缓存不是没有用啊,缓存也是在 fetch 方法中调用的。所以说你又想用缓存,又想进行文件改动判断,那你也要在 fetch 方法中改动。我刚刚回答你这个问题,是特意去看了下框架代码的。你可以自己研究下。
abccccabc
2018-08-06 14:38:37 +08:00
@linpf 我知道有这个$this->config['display_cache'],但要使用这个,要每个 fetch 的地方都要去改动一下,不切实际。


现有的办法是采用默认的模板。

谢谢你。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/476776

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX