我有一个简单的数据库查询,可以从数据库中输出一些内容,例如:
$user->HeadHits = DB::table('csstats AS cs')
->where('cs.steamid', '=', $user->steam_id)
->select("cs.h_1")
->first()->h_1;
和刀片:
@if ($user->HeadHits == 0)
0%
@else
<?php echo number_format($user->HeadHits / $user->AllHits * 100,2); ?>%
@endif
但如果在数据库中找不到用户steam\u id,则会出现错误:
尝试获取非对象的属性
有什么建议吗?谢谢
2条答案
按热度按时间zfycwa2u1#
这是因为当你使用
DB
(查询生成器)和first
它会回来的null
如果找不到行。您需要添加签入以查看该值是否存在:
较短的方法是使用value():
最后,仅供参考,但您不需要显式地在列名之前添加表别名,因为您只查询一个表。另外,您不需要添加
=
与where()
因为它将假定这是应该使用的运算符。最终,您可以将代码简化为:uxhixvfz2#
你可以用isset()检查
就像那样