检查两列的条件


Check two columns conditions

我使用的是Laravel 4.2 PHP框架。这很奇怪,代码是正确的,但它总是返回意外的布尔值。

$enjoying = (DB::table('enjoy')->where('user_id','=',$authUserId)->where('video_id','=',$video_id)->get()) ? true : false;

我确信我有一个名为"enjoy"的表,其中user_id和video_id与上面的语句完全匹配。但它总是出乎意料地返回false。

另一方面,我还创建了一个Enjoy Model,所以我替换并修改了上面的声明。

$enjoying = (Enjoy::where('user_id','=',$authUserId)->where('video_id','=',$video_id)->get()) ? true : false;

这一次,假设我的表"享受"没有任何数据。但它将意外地始终返回TRUE。我不知道发生了什么事。

享受模型

<?php
class Enjoy extends Eloquent
{
protected $fillable = array('user_id', 'video_id');
protected $table = 'enjoy';
public  $timestamps = false;
  public function users() {
       return $this->has_many_and_belongs_to('User');
  }
}

试试这个。。。

$data = Enjoy::where('user_id','=',$authUserId)->where('video_id','=',$video_id)->get();
echo $enjoying = (count($data)) ? 1 : 0;
or 
echo $enjoying = (count($data)) ? true : false;

也许您需要"exists"方法?

$enjoying = Enjoy::where('user_id','=',$authUserId)
    ->where('video_id','=',$video_id)
    ->exists();