2015-01-25 2 views
0

Вот мой умник файл шаблона:использованием in_array с умник секции петли

{section loop=$Author name=Author} 
<option value="{$Author[Author].Id}" 
{if $Author[Author].Id|in_array:$ListAths.AuthorId})} 
selected 
{/if} 
> 
{$Author[Author].AuthorName}</option> 
{/section} 

Моя PHP структура для обеих переменных (Автор и ListAths) Похоже что-то подобное с заменой правильной переменной для SQL и команды умник:

$stmt = $connect->prepare(/*command here*/); 
$stmt->execute($array); 
$result = $stmt->fetchall(); 
$smarty->assign('ListAths', $result); 
$stmt2 = $connect->prepare(/*command here*/); 
$stmt2->execute($array); 
$result2 = $stmt2->fetchall(); 
$smarty->assign('Author', $result2); 

ошибка, что я получаю:

Warning: in_array() expects parameter 2 to be array, null given in /mydirectory/Smarty/sysplugins/smarty_internal_templatebase.php(171) : eval()'d code on line 71 

$ListAths.AuthorId не распознается как массив! Как я могу исправить проблему?

это работает так:

{section loop=$Author name=Author} 
<option value="{$Author[Author].Id}" 
{section loop=$ListAths name=ListAths} 
{if $Author[Author].Id == $ListAths[ListAths].AuthorId} 
selected 
{/if} 
{/section} 
> 
{$Author[Author].AuthorName}</option> 
{/section} 

Но я все еще хотел бы сделать это с помощью in_array

+0

'не распознается как описание array' ошибки говорит вам, что это ** NULL ** –

ответ

0

я не могу комментировать, чтобы спросить, какую версию умник вы используете ... при условии, Smarty 3 вы можете использовать любой PHP функции (а также объекты) в ваших Smarty шаблоны ...

{section loop=$Author name=Author} 
<option value="{$Author[Author].Id}" 
{if in_array($Author[Author].Id, $ListAths.AuthorId)} 
selected 
{/if} 
> 
{$Author[Author].AuthorName}</option> 
{/section} 
+0

Проблема в том, что' $ Listat hs.AuthorId' является NULL –

+0

ok, поэтому может возникнуть проблема с назначением переменных '$ smarty-> assign ($ itisauthororlistathshere, $ result);' выглядит странно, если использовать '$ ListAths' в шаблоне ... является переменной '$ ListAths 'присваивается где-то? – bohrsty

+0

$ itisauthororlistathshere может равняться ListAths или Author. – shnisaka

Смежные вопросы