laravel 渲染字符串,给定数据呈现blade字符串后返回HTML
/** * Laravel 给定数据呈现blade字符串后返回HTML * Get StringBlade Instance or returns the HTML after rendering the blade string with the given data. * * @param mixed $string * @param null $data * @throws FatalThrowableError * @return bool|string|StringBladeContract */ function renderBlade($string, $data = null) { if (!$data) { $data = []; } $data['__env'] = app(Factory::class); $php = Blade::compileString($string); $obLevel = ob_get_level(); ob_start(); extract($data, EXTR_SKIP); try { eval('?' . '>' . $php); } catch (Exception $e) { while (ob_get_level() > $obLevel) { ob_end_clean(); } throw $e; } catch (Throwable $e) { while (ob_get_level() > $obLevel) { ob_end_clean(); } throw new Exception($e); } return ob_get_clean(); }