Php 检查两列条件
我使用的是Laravel4.2PHP框架。这很奇怪,代码是正确的,但它总是返回意外的布尔值Php 检查两列条件,php,mysql,database,laravel,Php,Mysql,Database,Laravel,我使用的是Laravel4.2PHP框架。这很奇怪,代码是正确的,但它总是返回意外的布尔值 $enjoying = (DB::table('enjoy')->where('user_id','=',$authUserId)->where('video_id','=',$video_id)->get()) ? true : false; 我确信我有一个名为“享受”的表,其中用户id和视频id与上述语句完全匹配。但它总是意外地返回false 另一方面,我还创建了一个享受模型,所以
$enjoying = (DB::table('enjoy')->where('user_id','=',$authUserId)->where('video_id','=',$video_id)->get()) ? true : false;
我确信我有一个名为“享受”的表,其中用户id和视频id与上述语句完全匹配。但它总是意外地返回false
另一方面,我还创建了一个享受模型,所以我替换并修改了上面的语句
$enjoying = (Enjoy::where('user_id','=',$authUserId)->where('video_id','=',$video_id)->get()) ? true : false;
这一次,假设我的表“享受”没有任何数据。但它总是出乎意料地返回真实。我不知道发生了什么事
享受模式
<?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;
也许你需要“存在”的方法
get()
不会像您认为的那样返回false
-y值。
$enjoying = Enjoy::where('user_id','=',$authUserId)
->where('video_id','=',$video_id)
->exists();