Laravel - 如何在 blade 视图中显示 try/catch?
Laravel - How to a try/catch in blade view?
我想创建一种在视图中编译的方法,try/catch。
我如何在 Laravel 中执行此操作?
示例:
@try
<div class="laravel test">
{{ $user->name }}
</div>
@catch(Exception $e)
{{ $e->getMessage() }}
@endtry
您应该不在您的视图中有try
/catch
块。视图正是:一些数据的表示。这意味着您不应该执行任何逻辑(例如异常处理)。一旦你从模型中获取数据,它就属于控制器。
如果您只是想在未定义变量的情况下显示默认值,您可以使用标准 PHP null coalescing operator 来显示默认值:
{{ $user->name ?? 'Name not set' }}
如果您需要 try..catch
在您的视图中,您可能做错了什么。但这并不意味着你永远不应该这样做。每条规则都有例外。
所以无论如何,这里是答案:
使用 <?php ?>
或 @php @endphp
标签将原始 PHP 放在您的视图中。然后将 try..catch
放入原始 PHP.
@php
try {
// Try something
} catch (\Exception $e) {
// Do something exceptional
}
@endphp
虽然我同意 @areed 的观点,如果您必须使用 try...catch 就会出错,但在某些奇怪的情况下,错误的方法可能会导致您走上这条路。一个实例使用相同的 blade 来容纳 paginate()
和 get()
响应。嗯,这可能有点帮助。
<?php try{ ?>
//try to show something
{{ $products->links() }}
<?php }catch(\Exception $e){ ?>
// show something else
<?php } ?>
我想创建一种在视图中编译的方法,try/catch。 我如何在 Laravel 中执行此操作?
示例:
@try
<div class="laravel test">
{{ $user->name }}
</div>
@catch(Exception $e)
{{ $e->getMessage() }}
@endtry
您应该不在您的视图中有try
/catch
块。视图正是:一些数据的表示。这意味着您不应该执行任何逻辑(例如异常处理)。一旦你从模型中获取数据,它就属于控制器。
如果您只是想在未定义变量的情况下显示默认值,您可以使用标准 PHP null coalescing operator 来显示默认值:
{{ $user->name ?? 'Name not set' }}
如果您需要 try..catch
在您的视图中,您可能做错了什么。但这并不意味着你永远不应该这样做。每条规则都有例外。
所以无论如何,这里是答案:
使用 <?php ?>
或 @php @endphp
标签将原始 PHP 放在您的视图中。然后将 try..catch
放入原始 PHP.
@php
try {
// Try something
} catch (\Exception $e) {
// Do something exceptional
}
@endphp
虽然我同意 @areed 的观点,如果您必须使用 try...catch 就会出错,但在某些奇怪的情况下,错误的方法可能会导致您走上这条路。一个实例使用相同的 blade 来容纳 paginate()
和 get()
响应。嗯,这可能有点帮助。
<?php try{ ?>
//try to show something
{{ $products->links() }}
<?php }catch(\Exception $e){ ?>
// show something else
<?php } ?>