Smarty中的'SmartyException'消息'Missing template name'

时间:2014-07-28 03:15:29

标签: php compiler-errors smarty

我收到的错误是" SmartyException'消息'缺少模板名称..."。 我喜欢在Smarty中使用display()显示不同的页面。我从网址获取值并将页面分开。 我尝试连接单引号,但它并没有真正起作用。 任何帮助欣赏。 index.html,confirm.html,finish.html存在于模板目录的联系人文件夹中。

switch($_GET['param']) {
    case 1: confirmation();
    break;

    case 2: send_email();
    break;

    case 3: finish();
    break;
}


function confirmation(){
    echo 'index page';

//$smarty->assign('css', "contact");
//$smarty->display('contact/index.html');
    $url = '\'contact/index.html\'';
}

function send_email(){
    echo 'confirmation page';

//$smarty->assign('css', "contact");
//$smarty->display('contact/confirm.html');
    $url = '\'contact/confirm.html\'';
}

function finish(){
    echo 'finish page';

//$smarty->assign('css', "contact");
//$smarty->display('contact/finish.html');
    $url = '\'contact/finish.html\'';
}



//
$smarty->assign('css', "contact");
//$smarty->display('contact/index.html');
$smarty->display($url);

1 个答案:

答案 0 :(得分:0)

这是因为你在每个函数中使$url成为局部变量。您应该创建全局变量并在每个函数中返回$url,如下面的代码所示:

$url = '';
switch($_GET['param']) {
    case 1: 
       $url = confirmation();
       break;

    case 2: 
       $url = send_email();
       break;

    case 3: 
       $url = finish();
       break;
}


function confirmation(){
    echo 'index page';

//$smarty->assign('css', "contact");
//$smarty->display('contact/index.html');
    $url = 'contact/index.html';
    return $url;
}

function send_email(){
    echo 'confirmation page';

//$smarty->assign('css', "contact");
//$smarty->display('contact/confirm.html');
    $url = 'contact/confirm.html';
    return $url;
}

function finish(){
    echo 'finish page';

//$smarty->assign('css', "contact");
//$smarty->display('contact/finish.html');
    $url = 'contact/finish.html';
    return $url;
}



//
$smarty->assign('css', "contact");
//$smarty->display('contact/index.html');
$smarty->display($url);

顺便说一句,我在每个函数中也删除了$url中的单引号,因为它们似乎根本不需要。