我是Laravel的新手,我知道我可以在这样的双花括号中回显变量:
<p>{{ $posts->id }}</p>
现在在我的情况下,我有一个表单有时包含变量$ posts(顺便说一下是表),有时根据URL中的参数不包含它来插入行。
当然,如果没有帖子,则“ - &gt; id”部分将失败。 有一种优雅的方式可以在这里制作一个快速的IF语句,例如:
<?php if ($posts) echo $posts["id"]; ?>
但只是使用刀片引擎。
我知道我可以在HTML块周围使用@if但是我必须一直两次写该块。
答案 0 :(得分:4)
这取决于究竟是什么$posts
。
您可以使用三元语句。例如,如果$posts
是集合或数组,请使用empty
:
{{ empty($posts) ? '' : $posts->id }}
如果它只是变量,请使用isset()
在某些情况下,可以使用or
语法:
{{ $posts or 'It is empty' }}
在PHP7中,您可以使用??
(空合并运算符)来检查变量isset()
。例如:
{{ $posts ?? $posts->id }}
您可以在the official documentation中看到其他说明(请参阅Echoing Data If It Exists
部分)。
答案 1 :(得分:1)
optional帮助程序是另一种更类似于“ laravel”的方法。
library(dplyr)
DataA <- data.frame(chr = c("chr1", "chr1", "chr1"), start = c(25,50,60), end = c(35,70,85))
DataB <- data.frame(chr = c("chr1", "chr1", "chr1"), start = c(10,55,76), end = c(15,75,82), score = c(24,14,10))
luA <- Map(`:`, DataA$start, DataA$end)
luA <- data.frame(value = unlist(luA),
index = rep(seq_along(luA), lapply(luA, length)))
DataA[luA$index[match(DataB$start, luA$value)],]
DataB[luA$index[match(DataB$start, luA$value)],]
与{{ optional($posts)->id }}
助手一起使用,效果很好。