2012-08-08 72 views
1

我有阻止try-catch,我想分配错误给模板$ error。我想:异常和聪明

catch (Exception $e) { 
    $smarty->assign("error", 'Error! Details: '.$e->getMessage()); 
} 

也试过:

catch (Exception $e) { 
    $error = $e->getMessage()); 
} 
$smarty->assign("error", $error); 

但如果没有错误,Smarty的需要此变量,所有的崩溃。有没有办法处理它,而不使用?或者可能是我从开始就做错了?

+0

在哪里你的'try {}'? – 2012-08-08 10:36:39

+0

它是较高的 - 问题是如何给smarty附加错误。 – user1564141 2012-08-08 10:38:03

回答

1

你可以简单地做一个

{$error|default:''} 

你不需要为:)的{if}{/if}

0

试试这个
PHP的:

catch (Exception $e) { 
    $smarty->assign("error", true); 
    $smarty->assign("error_message", $e->getMessage()); 
} 

的Smarty:

{if $error} 
     {$error_message} 
{/if} 
+0

on else fires error – user1564141 2012-08-08 10:56:00

+0

代码php/smarty编辑,试试吧 – Julien 2012-08-08 12:38:22

0

一下怎么样,如果$错误变量定义模板检查?

{if !empty($error)} 
    Oops: {$error} 
{/if} 

否则,你可以重新分配变量:

$smarty->assign("error", null); 
try { 
    // … 
} catch (Exception $e) { 
    $smarty->assign("error", $e->getMessage()); 
} 
+0

在这种情况下smarty说 注意:未定义的索引: – user1564141 2012-08-08 11:00:31

+0

中的错误您尝试过上述哪一项? – rodneyrehm 2012-08-08 12:57:05