【问题标题】:WhereIN query returns null in laravel?whereIN 查询在 laravel 中返​​回 null?
【发布时间】:2020-07-07 11:25:52
【问题描述】:

我正在尝试使用 WhereIN 查询查找用户数量,我使用三种类型进行了测试,第一种两种正确返回用户,但是当我使用变量而不是直接数据时,它返回 null

$userss = User::where('id',Auth::user()->id)->first();

        $membership = Ppv::whereIN('membership_id',[3])->count();
       dd( $membership);//its returns user correctly



 $membership = Ppv::where('membership_id',$userss->membership_id)->count();
           dd( $membership); // also return users correctly

但是当我在 whereIN 查询中使用它时,它返回 null

$userss = User::where('id',Auth::user()->id)->first();
    $membership = Ppv::whereIN('membership_id',array($userss->membership_id))->count();
   dd( $membership); // retruns null or 0 

【问题讨论】:

  • 您的意思是whereIn() 而不是whereIN()
  • 我不明白你为什么要用whereIn 来表示一个包含一个项目的数组。
  • @rkg 我正在考虑两者相同。两者都不能正常工作
  • @Dan 因为membership_ids存储在3,5,7中
  • membership_id comlum 中的@Dan 值使用 implode 以数组格式存储

标签: php laravel


【解决方案1】:

您正在使用 $userss,就像它是一个 id。它不是。它是一个用户模型。如果你想按照你描述的方式使用它,你需要:

    $membership = Ppv::whereIn('membership_id',[ $userss->membership_id ])->count();

但是如果你要从用户那里获取 first(),你应该这样做:

    $membership = Ppv::where('membership_id',$userss->membership_id)->count();

【讨论】:

  • 没用我也试过我也很困惑。但是当我直接插入数据时它可以工作
  • 请用您的解决方案编辑您的问题,以帮助其他用户。
  • 你的最后一次更新也不适合,因为我需要数组,但是非常感谢,我会永远记住它
  • 是一个数组: whereIn('membership_id',[ $userss->membership_id ])
  • 发布您的解决方案
【解决方案2】:

$user = User::where('id',Auth::user()->id)->first();

请检查$user->membership_id的值;

return Ppv::whereIN('membership_id',[$user->membership_id])->count();

【讨论】:

    猜你喜欢
    • 2015-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2016-04-20
    • 2017-04-01
    相关资源
    最近更新 更多