laravel 渲染字符串,给定数据呈现blade字符串后返回HTML

 Laravel  2021-05-26  admin  1217  1642

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();
}


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

相关推荐


封装 laravel 的公共队列,延迟处理任务

封装 laravel 的公共队列,延迟处理任务<?php /** *ThisfileispartofLunanShopTeam. *http://centphp.com/ *@authorhttp://centphp.com/view/387 */ namespaceApp\Jobs; useException; useIlluminate\Bus\Queueab

laravel 单元测试报错 RuntimeException : A facade root has not been set.

laravel 单元测试报错 RuntimeException : A facade root has not been set.

Apache laravel URL重写隐藏应用的入口文件 index.php

Apache laravel URL重写隐藏应用的入口文件 index.php

laravel 自定义验证规则

laravel 自定义验证规则