【问题标题】:Check two columns conditions检查两列条件
【发布时间】:2017-02-17 21:40:59
【问题描述】:

我正在使用 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;

这一次,假设我的表 'enjoy' 没有任何数据。但它总是会意外返回 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');
  }
}

【问题讨论】:

  • get() 不会像您认为的那样返回 false-y 值。

标签: php mysql database laravel


【解决方案1】:

试试这个...

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

【讨论】:

    【解决方案2】:

    也许你需要“exists”方法?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 2020-05-21
      相关资源
      最近更新 更多