我想创建一种在视图中编译的方法,try / catch。 我怎么能在Laravel中做到这一点?
示例:
--cpu-quota
答案 0 :(得分:17)
您应该不在视图中包含try
/ catch
块。视图就是:某些数据的表示。这意味着你不应该做任何逻辑(例如异常处理)。一旦你从模型中获取数据,它就属于控制器。
如果您只想在未定义变量的情况下显示默认值,则可以使用标准PHP null coalescing operator来显示默认值:
{{ $user->name ?? 'Name not set' }}
答案 1 :(得分:3)
如果您在视图中需要try..catch
,那么您可能做错了什么。但这并不意味着你永远不应该这样做。每条规则都有例外。
无论如何,这是答案:
使用<?php ?>
或@php @endphp
标记将原始PHP放入您的视图中。然后将您的try..catch
放入原始PHP。
@php
try {
// Try something
} catch (\Exception $e) {
// Do something exceptional
}
@endphp
答案 2 :(得分:0)
虽然我同意@areed,但如果您必须使用try ... catch则出了点问题,但在某些奇怪的情况下,错误的方法可能会导致您走这条路。一个实例正在使用同一刀片来容纳paginate()
和get()
响应。好吧,这可能会有所帮助。
<?php try{ ?>
//try to show something
{{ $products->links() }}
<?php }catch(\Exception $e){ ?>
// show something else
<?php } ?>