资讯专栏INFORMATION COLUMN

laravel自定义模板指令-tojs

arashicage / 1753人阅读

摘要:允许你自定义命令,你可以使用方法注册命令。当编译器遇到该命令时,它将会带参数调用提供的回调函数。

Blade 允许你自定义命令,你可以使用 directive 方法注册命令。当 Blade 编译器遇到该命令时,它将会带参数调用提供的回调函数。blade模板可以通过directive方法来自定义模板指定,

tojs指令主要用于PHP自定义一些数据转换为js对象方便js调用

1.创建ToJsServiceProvider
app->singleton("tojs", function () {
            return new ToJs();
        });

        /*
        * The block of code inside this directive indicates
        * the chosen javascript variables.
        */
        Blade::directive("tojs", function () {
            return "";
        });
    }
}
2. ToJs方法主要是对数组的一些操作
 $value) {
            $this->data[$key] = value($value);
        }

        return $this;
    }

    public function get($key = null, $default = null)
    {
        if (!$key) return $this->data;

        return Arr::get($this->data, $key, $default);
    }

    public function forget($keys)
    {
        Arr::forget($this->data, $keys);

        return $this;
    }
}
3.声明facade
namespace AppHelpersToJsFacades;

use IlluminateSupportFacadesFacade;


class ToJsFacade extends Facade
{
    /**
     * Get the registered name of the component.
     *
     * @return string
     */
    protected static function getFacadeAccessor()
    {
        return "tojs";
    }
}
4.在config数组添加serviceProvider

providers 添加
AppProvidersToJsServiceProvider::class

aliases 添加
"ToJs" => AppHelpersToJsFacadesToJsFacade::class,

5.为了方便调用可以在写一个helper方法
if (!function_exists("to_js")) {
    /**
     * Access the javascript helper.
     */
    function to_js($key = null, $default = null)
    {
        if (is_null($key)) {
            return app("tojs");
        }

        if (is_array($key)) {
            return app("tojs")->put($key);
        }

        return app("tojs")->get($key, $default);
    }
}

在PHP代码需要的地方调用 to_js(["username"=>"test"]);

blade模板直接通过 @tojs 就可以在页面渲染出

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83693.html

相关文章

  • Laravel定义模板指令小结

    摘要:模板包含大量的内置指令,例如等等,内置的指令对于做一个简单的项目足以,但是当你在代码中编写重复复杂的功能时,那么自定义模板指令或许可以帮你优化你的视图结构。 showImg(https://segmentfault.com/img/remote/1460000012420445?w=730&h=335); 介绍 通常我们在视图模板中编写复杂的逻辑,看上去显得很杂乱,那么使用自定义的模板...

    tracymac7 评论0 收藏0
  • 5 个非常有用的 Laravel Blade 指令,你用过哪些?

    摘要:接下来我将带大家认识下五个指令,这些指令将让你在解决特定问题时如虎添翼。如果你是刚接触的用户,这些小技巧能带你认识到模板引擎的便捷与高效。 showImg(https://segmentfault.com/img/remote/1460000015076241); 接下来我将带大家认识下五个 Laravel Blade 指令,这些指令将让你在解决特定问题时如虎添翼。如果你是刚接触 La...

    stefan 评论0 收藏0
  • Laravel 模板引擎(Blade)原理简析

    摘要:上次提到过,模板引擎一般是要做三件事情变量值的输出条件判断和循环引入或继承其他文件现在就来看看的模板引擎是如何来处理这三件事情的。引擎接下来就是本文的重点是如何编译的。如果有兴趣的话,也可以实现一个自己的模板解析引擎。 上次提到过,模板引擎一般是要做三件事情: 变量值的输出(echo) 条件判断和循环(if ... else、for、foreach、while) 引入或继承其他文件 ...

    vvpvvp 评论0 收藏0
  • Laravel 5.4 入门系列 5. 博客通用布局

    摘要:接下来执行迁移即可通用布局通用布局首先是博客首页,定义路由控制器视图博客首页访问下网站根目录,显示博客首页,框架基本搭建完成了。首先是通用布局通用布局里面除了使用之外,还使用了,用于加载其他模板。 5. 博客的通用布局 初始化 创建控制器、模型、迁移 博客的核心是文章,可以先来实现和文章有关的功能,根据前几节的介绍可知,我们至少需要创建这几类: PostsController:控制器...

    xuweijian 评论0 收藏0
  • [译] Laravel-mix 中文文档

    摘要:原文地址镜像地址中文文档概览基本示例是位于顶层的一个简洁的配置层,在的情况下使用会使操作变的非常简单。在项目根目录下并没有配置文件,默认指向根目录下的配置文件。否则,它通常与需要删除的错误锁文件有关。该问题已被在修复。 原文地址: Laravel Mix Docs 镜像地址 : Laravel-mix 3.0 中文文档 概览 基本示例 larave-mix 是位于webpack顶层的一...

    K_B_Z 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<