首页 > 解决方案 > Blade - 自定义指令的不同随机数

问题描述

我正在使用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]; ?>';
        });

该指令基本上从值数组中选择一个随机值并将其输出。

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

@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
--}

感谢您的回复!

标签: phplaravellaravel-blade

解决方案


Blade 将在每次调用时计算指令;否则,我们怎么能传入参数,如果你传入不同的数组呢?

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


推荐阅读