我正在尝试根据表中是否存在记录来设置布尔 $bln
。
这就是我一直在尝试的:
$bln = (bool) DB::table('accounts')->where('name', $name)->pluck('id');
由于某种原因,$bln
似乎总是设置为true
。我在做什么错?
要实现此目的,您可以使用count()
方法:
$bln = DB::table('accounts')->where('name', $name)->count() > 0;
如果您以后需要对象,请加载并使用is_null()
进行检查:
$object = DB::table('accounts')->where('name', $name)->first();
$bln = !is_null($object);
我猜id
是integer
而不是boolean
类型?好吧,我真的希望是!呵呵。
您要做的就是获取给定account
的id
并将其投入到bool
。
如果将值施加到bool
,则只要在integers
情况下,它将是 true ,只要它不评估 false ,仅将0
评估为>false 将其投放到bool
时。
检查结果计数是否大于0
,并且应该给出您想要的结果。
因为pluck()返回数组,您可以用计数进行检查 $bln = (bool) count(DB::table('accounts')->where('name', $name)->pluck('id'));
这是一个Laravel文档:Pluck()
exists()
和doesntExist()
方法将布尔值直接出现,而不是count()
。
$bln = DB::table('accounts')->where('name', $name)->exists();
laravel文档:确定是否存在记录
请尝试。
$bln = DB::table('accounts')->where('name', $name)->get()->first();
if(isset($bln) && $bln != null || $bln != ''){
return $bln = 1;
}
else{
return $bln = 0;
}