我怎样才能在 smarty 中得到一个常数?

Mar*_*ñoz 5 php constants smarty

我遇到了 Smarty 和常量的问题。我在文件中指定了三个常量:

DEFINE('ARTICLE_COLOUR_10', 'Light green');
DEFINE('ARTICLE_COLOUR_11', 'Claret'); // Bordó
DEFINE('ARTICLE_COLOUR_12', 'Yellow');
Run Code Online (Sandbox Code Playgroud)

在 DB 中,我只保存数字 (10, 11, 12) 并通过此 var 发送这些数字

$sql_query_int = mysqli_query($connectdb, "SELECT colour FROM stock WHERE product='$articleId'");    
$smarty->assign('colours', $sql_query_int);
Run Code Online (Sandbox Code Playgroud)

在 TPL 我得到这些数字

{foreach from=$colours key=field item=value}
    {$value.colour}<br>
{/foreach}
Run Code Online (Sandbox Code Playgroud)

现在我想获取变量 ARTICLE_COLOUR_$value.colour; 我尝试了三种不同的方法,但无法获得完整的变量。

{$smarty.const.ARTICLE_COLOUR_{$value.colour}}
{$smarty.const.ARTICLE_COLOUR_$value.colour}
{$smarty.const.ARTICLE_COLOUR_value.colour}
Run Code Online (Sandbox Code Playgroud)

致命错误:Smarty 错误:[在 C:\xampp\htdocs/templates/default/tpl\article.tpl line 10]:语法错误:$smarty.$value.colour is an invalid reference (Smarty_Compiler.class.php, line 2169) 在 C:\xampp\htdocs\inc\smarty\Smarty.class.php 第 1109 行

我将感谢您对这个问题的帮助,如果这个问题拼写错误,请原谅,我的英语不是很先进。

小智 6

{constant("ARTICLE_COLOUR_{$value.colour}")}
Run Code Online (Sandbox Code Playgroud)