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 需要这个变量并且所有的崩溃。有什么方法可以不使用 if 来处理它?或者我可能从一开始就做错了?

4

3 回答 3

2

你可以简单地做一个

{$error|default:''}

你不需要一个{if}{/if}:)

于 2012-12-06T10:42:47.380 回答
0

试试这个
PHP:

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

聪明的:

{if $error}
       {$error_message}
{/if}
于 2012-08-08T10:37:54.500 回答
0

如何让模板检查 $error 变量是否已定义?

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

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

$smarty->assign("error", null);
try {
  // …
} catch (Exception $e) {
  $smarty->assign("error", $e->getMessage());
}
于 2012-08-08T10:56:35.807 回答