1

私はblocktry--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());
}

Smarty:

{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 に答える