如何为Laravel中是否存在记录设置布尔值?

时间:2017-03-15 13:23:43

标签: php mysql laravel laravel-4

我正在尝试根据表中是否存在记录来设置布尔值$bln

这就是我一直在尝试的:

$bln = (bool) DB::table('accounts')->where('name', $name)->pluck('id');

出于某种原因$bln似乎总是设置为true。我做错了什么?

5 个答案:

答案 0 :(得分:3)

要实现此目的,您可以使用count()方法:

$bln = DB::table('accounts')->where('name', $name)->count() > 0;

如果您以后需要该对象,请加载该对象并使用is_null()进行检查:

$object = DB::table('accounts')->where('name', $name)->first();
$bln = !is_null($object);

答案 1 :(得分:1)

我猜测idinteger而不是boolean类型?嗯,我真的希望它是!嘿嘿。
您要做的是获取给定id的{​​{1}}并将其投放到account
如果您将值转换为bool,只要在bool情况下不评估为 false ,它就会为真integers强制转换为0时,我会将其评估为 false

检查结果计数是否大于bool,并且它应该给出您想要的结果。

答案 2 :(得分:1)

因为pluck()返回一个数组,你可以用count来检查它 $bln = (bool) count(DB::table('accounts')->where('name', $name)->pluck('id')); 这是Laravel Documentation: pluck()

答案 3 :(得分:0)

请试一试。

$bln = DB::table('accounts')->where('name', $name)->get()->first();
if(isset($bln) && $bln != null || $bln != ''){
    return $bln = 1;
}
else{
    return $bln = 0;
}

答案 4 :(得分:0)

exists()doesntExist()方法直接提供了布尔值,请使用它们代替count()

$bln = DB::table('accounts')->where('name', $name)->exists();

Laravel Docs:确定记录是否存在