[已解决]请教thinkphp使用fastcgi_finish_request的问题

@Ta 2021-08-28发布,2021-08-29修改 3554点击
最近在用thinkphp写点小东西
然后有项目需要用到fastcgi_finish_request()继续执行一些东西
现在的问题就是return $this->fetch()之后肯定无法执行,但是又不能放在return前面
问问大佬们有什么方法能搞定

后来想了想,return直接换成echo也是可行的,不过大家别学我瞎写,哈哈
public function index()
{
    //代码片段....
    echo $this->fetch();//模板
   
    fastcgi_finish_request();
    //代码片段....
}
回复列表(5|隐藏机器人聊天)
  • @Ta / 2021-08-28 / /

    问题描述不清楚,无法回答。
    需要对该描述做出具体解释:
    return $this->fetch()之后肯定无法执行(为什么?),但是又不能放在return前面(为什么?)

  • @Ta / 2021-08-28 / /
    @老虎会游泳,很明白呀
    public function index($id=0)
    {
        //代码片段....
        return $this->fetch();//模板
       // 如果我这时候使用fastcgi_finish_request,因为return之后,代码显然不会执行
        fastcgi_finish_request();
        //代码片段....
    }
    


  • @Ta / 2021-08-28 / /
    这问题可是相当有难度啊。。

    前面不能放 

    又要放在 返回 函数之后

    返回函数之后  后面的代码又无法执行,

    无解。。。
  • @Ta / 2021-08-29 / /
    我之前看过view源码,执行fetch后,会new response,并且body会写入 模板文件的字符串,return 这个response 会执行 send()方法,方法里面就是echo body,你可以使用ob_get_* 方法来捕捉缓冲区内容
  • @Ta / 2021-08-29 / /
    被禁言
    用户被禁言,发言自动屏蔽。
添加新回复
回复需要登录