2015-08-25 5 views
0

Я пытаюсь запустить условный оператор через smarty с помощью переменной с именем name, но при запуске файла php ничего не отображается. Я новичок в smarty. Что может быть ошибкой, которую я делаю?Получение пустого вывода при использовании условного оператора

Test.php

<?php 
    require_once('./libs/Smarty.class.php'); 

    $smarty = new Smarty(); 

    $smarty->assign('title','Title of the page'); 
    $smarty->assign('hello','Text displayed from smarty!!'); 
    $smarty->assign('name','is smarty'); 
    $smarty->display('./template/template.tpl'); 

?> 

Template.tpl

<html> 

<head> 
    <title> {$title} </title> 
</head> 

<body> 
    {$hello} 

    {if $name eq "smarty"} 
     <span> The name is : smarty</span> 
    {/elseif $name eq "is smarty"} 
     <span> The name is : is smarty</span> 
</body> 

+2

'$ smarty-> assign ('name', 'Your name');'? – Debflav

+0

Вы не назначаете $ name. –

+0

@ Дебфлав Отредактировано. Это все равно. –

ответ

2

You кованы ВЗ, чтобы закрыть {if} блок в шаблоне:

<html> 

<head> 
    <title> {$title} </title> 
</head> 

<body> 
    {$hello} 

    {if $name eq "smarty"} 
     <span> The name is : smarty</span> 
    {/elseif $name eq "is smarty"} 
     <span> The name is : is smarty</span> 
    {/if} {* <------ here ---- *} 
</body> 

Когда не отображается ничего, вы можете отлаживать шаблоны, установив $smarty->error_reporting в E_ALL & ~E_NOTICE перед вызовом display().

0

Назначение переменных в шаблоне, по существу, размещающих логику приложения в презентации, которая может быть лучше обрабатываются в PHP.

$ smarty-> assign ('name', 'is smarty');

Назначенная переменная в объекте smarty может быть доступна только в шаблоне.

Если вы просто указали $ name = '', то конкретная переменная не присваивается шаблону smarty.

поэтому, пожалуйста, назначить переменную в логике и получить значение в представлении

А также обеспечить {ElseIf} вместо {/ ElseIf}, а также закрытие {/, если} заявление в Smarty шаблон страницы

0

В вашей .tpl использование файла, если условие что-то вроде этого

{if $name eq "smarty"} 
     <span> The name is : smarty</span> 
    {elseif $name eq "is smarty"} 
     <span> The name is : is smarty</span> 
    {else} 
    Welcome, whatever you are. 
    {/if} 

Чтобы узнать больше о том, если еще в Smarty click here

+0

Используйте isset ($ name) или $ name | default: '', чтобы избежать уведомления от smarty – sammry

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

  • Нет связанных вопросов^_^