繁体   English   中英

刀片中快速IF语句的绝佳方式

[英]Elegant way for quick IF statement in blade

我是Laravel的新手,我知道我可以像这样在双大括号内回显变量:

<p>{{ $posts->id }}</p>

现在,以我为例,我有一个表单,该表单有时包含要更新的变量$ posts(顺便说一下,这是表格),有时不包含该变量以根据URL中的参数插入行。

当然,如果没有发布,则“-> id”部分将失败。 有没有一种优雅的方法可以在此处快速执行IF语句,例如:

<?php if ($posts) echo $posts["id"]; ?>

但仅使用刀片引擎。

我知道我可以在HTML块周围使用@if,但是那时候我必须一直写两次该块。

这取决于$posts到底是什么。

您可以使用三元语句。 例如,如果$posts是collection或array,则使用empty

{{ empty($posts) ? '' : $posts->id }}

如果只是变量,请使用isset()

在某些情况下可以使用or语法:

{{ $posts or 'It is empty' }}

在PHP7中,您可以使用?? (空合并运算符)以检查变量isset() 例如:

{{ $posts ?? $posts->id }}

您可以在官方文档中看到另一种解释(请参阅“ Echoing Data If It Exists部分)。

另一种更“ laravel式”的实现方法是可选帮助器。

{{ optional($posts)->id }}

old助手一起使用时效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM