Smarty foreach белая страница

0

У меня есть этот код Smarty:

{foreach from=$chats item=chat}
    {$chat['id']}
{/foreach}

Когда я пытаюсь выполнить это, я получаю белую страницу.

Я проверил, передал ли PHP-код законный массив с

{$chats[0]['id']}

И это работает.

Я полагал, что Smarty должен выводить ошибку, если что-то не так, поэтому я проверил настройки Smarty, но они выглядят нормально?

<?php
require('smarty/Smarty.class.php');
global $smarty;
error_reporting(E_ALL);
ini_set('display_errors', '1');
$smarty = new Smarty();
$smarty->error_reporting = E_ALL & ~E_NOTICE;
$smarty->debugging = true;
$smarty->template_dir = "templates"; 
$smarty->compile_dir = "templates_c";
$smarty->cache_dir = "cache";
$smarty->config_dir = "configs";
?>

Я проверил установку Smarty:

Smarty Installation test...
Testing template directory...
\templates is OK.
Testing compile directory...
\templates_c is OK.
Testing plugins directory...
\plugins is OK.
Testing cache directory...
\cache is OK.
Testing configs directory...
\configs is OK.
Testing sysplugin files...
... OK
Testing plugin files...
... OK
Tests complete.

Без утверждения foreach все работает.

Обновить

У меня Smarty версии 3.1.13,

Я попробовал этот примерный код из документации Smarty (http://www.smarty.net/docs/en/language.function.foreach.tpl):

<?php
require("smarty.php");
$arr = array('red', 'green', 'blue');
$smarty->assign('myColors', $arr);
$smarty->display('foreach.tpl');
?>

<ul>
{foreach $myColors as $color}
    <li>{$color}</li>
{/foreach}
</ul>

Но даже с этим кодом все, что я получаю, это белая страница

  • 0
    Без foreach страница работает? Я имею в виду проблему действительно в foreach ? Можете ли вы попробовать так {$chat.id}
Теги:
smarty

1 ответ

1

Вы должны проверить документацию: http://www.smarty.net/docs/en/language.function.foreach.tpl

Вы должны поместить $ перед вашей переменной. Также синтаксис item= устарел в Smarty3, который я предполагаю, что вы используете, поскольку в вашей публикации нет ссылки на устаревший Smarty2.

{foreach $chats as $chat}
    {$chat['id']}
{/foreach}

Если вы все еще используете Smarty2 в любом случае - вы должны попытаться получить доступ к вашим данным с {$chat.id} синтаксиса {$chat.id} вместо использования скобок. (Также в документах: http://www.smarty.net/docsv2/en/language.function.foreach.tpl)

{foreach from=$chats item=chat}
    {$chat.id}
{/foreach}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню