【问题标题】:Blade - different random numbers for custom directiveBlade - 自定义指令的不同随机数
【发布时间】:2021-02-01 02:37:37
【问题描述】:

我正在使用Laravel Framework 6.20.12PHP 7.4.1

我创建了一个自定义刀片指令:

        $blade->directive('randomValFromArr', function ($expression) {
            return '<?php $array=' . $expression . '; $val = array_rand($array, 1); echo $array[$val]; ?>';
        });

这个指令基本上是从值数组中选择一个随机值并输出它。

如果我在我的*.blade.php 文件中使用它 2 次,我会为这两个函数得到相同的数组输出,或者换句话说,相同的键:

@randomValFromArr(["1", "2", "3", "4"])

@randomValFromArr(["1", "2", "3", "4"])

{{--
OUTPUT:

1
1
--}

在我看来,刀片引擎只计算一次指令,然后在模板中使用它。

关于如何为我的@randomValFromArr-functionm 的每次出现真正获取随机值或唯一值的任何建议,例如:

@randomValFromArr(["1", "2", "3", "4"])

@randomValFromArr(["1", "2", "3", "4"])

{{--
OUTPUT:

3
1
--}

感谢您的回复!

【问题讨论】:

  • 一种方法可能是在删除随机生成的值后将数组存储在用户的会话中。

标签: php laravel laravel-blade


【解决方案1】:

Blade 每次调用都会计算指令;不然怎么传参数,如果传入不同的数组呢?

我测试了您的代码,它按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 2023-04-04
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 2018-10-05
    相关资源
    最近更新 更多