【问题标题】:Smarty include passing array in varSmarty 包括在 var 中传递数组
【发布时间】:2017-08-20 14:04:41
【问题描述】:

我尝试在 include 的 var 中传递一个数组元素。

但我仍然有这个错误:

致命错误:未捕获 --> Smarty 编译器:模板“file:/home/technique/www/site/tpl/home.html”第 6 行“{include file='include/article-latest. html' class='col-50' title=$article.TITLE tag=ARTICLE_CATEGORY.$article.CATEGORY img=$article.THUMBNAIL view='3526' share='564'}" - 意外的 ".",预期为其中之一: "}"

我的代码:

{foreach $latest_article.0 as $article}
    {include file='include/article-latest.html' class='col-50' title=$article.TITLE tag=ARTICLE_CATEGORY.$article.CATEGORY img=$article.THUMBNAIL view='3526' share='564'}
{/foreach}

显然,问题在于使用常量 ARTICLE_CATEGORY。看来 php 常量没有被 smarty 解释......

【问题讨论】:

标签: php smarty


【解决方案1】:

Smarty 中的 PHP 常量可以被 $smarty.const.CONSTANT_NAME 调用 参考在这里-https://www.smarty.net/forums/viewtopic.php?p=25903&sid=92c2eb2c177f8f82ae084361ee6c4400

{foreach $latest_article.0 as $article}
    {include file='include/article-latest.html' class='col-50' title=$article.TITLE tag=$smarty.const.ARTICLE_CATEGORY.$article.CATEGORY img=$article.THUMBNAIL view='3526' share='564'}
{/foreach}

此外还要考虑以下几点: - TITLE 和 CATEGORY 也可能是代码中的常量,因此必须通过 $smarty.const.TITLE 和 $smarty.const.CATEGORY 适当地调用; - ARTICLE_CATEGORY 是常量,所以它被用作数组很奇怪; - ARTICLE.$article.CATEGORY 可能是太深的数组,可能被 Smarty 错误地处理(因为点太多)。要修复它,您可能需要分配变量,例如:

{assign var="article_category" value=$smarty.const.ARTICLE_CATEGORY}
{foreach $latest_article.0 as $article}
    {include file='include/article-latest.html' class='col-50' title=$article.TITLE tag=$article_category.$article.CATEGORY img=$article.THUMBNAIL view='3526' share='564'}
{/foreach}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 2014-06-30
    相关资源
    最近更新 更多