2015-06-09 3 views
3

У меня есть Smarty значение, если оно пусто нужен другой результатумник, если пусто еще умник значение

{get_video_meta video_id=$video_data.id key='test'} 

Это значение печати «тест» Если это значение пусто, как может использовать?

{if !empty({get_video_meta video_id=$video_data.id key='test'})} 
    No value 
{else} 
{get_video_meta video_id=$video_data.id key='test'} 
{/if} 

Этот код не работает

ответ

6

Вы можете использовать the {capture} function перехватывать вывод в переменную, а затем выбрать то, что с ним делать:

{capture name="video_meta"}{get_video_meta video_id=$video_data.id key='test'}{/capture} 
{if empty($smarty.capture.video_meta)} 
No value 
{else} 
{$smarty.capture.video_meta} 
{/if} 
+0

Удивительная работа хорошая. thank u –

+0

Сначала я думал то же самое, но потом решил, что никакой плагин вызова причины, если пустая переменная $ video_data.id ... –

+0

@VladimirKovpak Я интерпретировал вопрос как означающий, что * результат * функции иногда пуст, а не что вход * был пуст. Так что тест не «у нас есть идентификатор видео?» но «у нас есть элемент метаданных« foo »для этого идентификатора видео?» – IMSoP

1

Вы можете присвоить значение переменной:

{if empty($code)} 
    {assign var='code' value='404'} 
{/if} 

, но я полагаю, что вам нужно что-то вроде:

{if empty($video_data.id)} 
    No value 
{else} 
    {get_video_meta video_id=$video_data.id key='test'} 
{/if} 

потому get_video_meta - это всезнайка плагин, и вы не можете использовать его, как вы пытаетесь использовать ...

В Еогеасп:

{foreach from=$video_data key=k item=v} 
    {if empty($k)} 
     No value 
    {else} 
     {get_video_meta video_id=$v.id key=$k} 
    {/if} 
{/foreach} 
+0

К сожалению это не работает я также хочу использовать ключевое значение –

+0

Что вы подразумеваете под ключ? Вы используете foreach? –

+0

да его от db –

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