在我的刀片模板中,我有一个last()方法。
{{ $statuses->last()->body }}
现在这个工作得很好,但是我可以在这里放一个where子句吗?有点像...
{{ $statuses->where('something', 0)->last()->body }}
答案 0 :(得分:2)
{{ $statuses->where('something', 0)->last()->body }}
这不起作用,因为集合中没有任何内容。换句话说,集合返回后,函数实际上是一个空数组,而last()
给你null
要测试这个..你可以简单地做到这一点
dd($statuses->last(), $statuses->where('something', 0)->last());
你会知道我是否正确:)
所以......要运行它,你必须做类似
的事情{{ $statuses->where('something', 0)->last() ? $statuses->where('something', 0)->last()->body : null }}
//or
if($statuses->where('something', 0)->last()) {
$statuses->where('something', 0)->last()->body;
}
:)
答案 1 :(得分:0)
您可以执行此操作,但您应首先检查null
,因为如果没有包含something = 0
的项目,则会返回null
:
<?php $item = $statuses->where('something', 0)->last(); >
{{ is_null($item) ? '' : $item->body }}
答案 2 :(得分:-1)
last()
方法闪现在Collection类中。 Where
返回查询构建器。
你需要这样做:
...->where(...)->get()->last()
但是这个查询非常不合适,因为你加载所有记录只使用一个。
尝试对查询进行排序并使用take(1)
来限制结果。