检查两列条件

时间:2015-02-19 06:12:37

标签: php mysql database laravel

我正在使用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与上述语句完全匹配。但它总是出乎意料地返回假。

另一方面,我还创建了一个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');
  }
}

2 个答案:

答案 0 :(得分:0)

试试这个......

$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;

答案 1 :(得分:0)

也许您需要“存在”方法?

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