如何在FlightPHP框架中将HTML返回至变量而非直接输出
解决FlightPHP视图内容返回变量而非直接输出的问题
- 方法一:利用输出缓冲捕获内容
这是通用的快速解决方案,无需依赖框架特定方法:
ob_start(); Flight::render('myView'); $output = ob_get_clean();
通过开启输出缓冲,让Flight::render()的输出暂时存入缓冲区域,再用ob_get_clean()取出缓冲内容赋值给变量,同时自动清空缓冲。
- 方法二:正确调用View实例的fetch方法
你看到的fetch是View类的实例方法,不能直接用Flight::fetch()调用(Flight的静态调用仅支持已注册映射的方法),正确步骤是先获取View实例再调用:
// 获取Flight的View实例 $view = Flight::view(); // 调用fetch获取视图内容,第二个参数可选,传入视图所需的变量数组 $output = $view->fetch('myView', ['username' => 'test']);
报错原因:Flight的静态方法调用基于映射机制,只有通过Flight::map()注册或框架预设的方法,才能用Flight::xxx()的形式调用。fetch是View类的实例方法,未在静态映射列表中,因此直接调用会触发错误。
内容的提问来源于stack exchange,提问作者Erasus
相关产品推荐
相关产品推荐

