【问题标题】:Laravel eloquent where not in with where condition not workingLaravel 雄辩的 where not in where 条件不工作
【发布时间】:2020-09-28 23:11:12
【问题描述】:

我想得到没有 $this->id 的 ID 总数。 我用过这个。但它不起作用。

public function edit(Member $member)
{
    $data = DB::table("members")
        ->where('nid_number', '=','7357665970')
        ->whereNotIn('id',$member->id)
        ->count();
    dd($data);
}

想在编辑时使用它进行 ajax 验证。请帮忙

【问题讨论】:

  • $member->id 是数组吗?
  • 没有。其唯一的 ID 号
  • ->whereNotIn('id',$member->id) 这里$member->id 它应该是一个数组
  • 我想要所有没有 $member->nid 的 '7357665970' 的 nid。它将计算所有 nid_number 但不包括 $member 的 nid_number。你能帮忙吗?
  • 如果$member->id是单个integer,则不需要使用whereIn()where('id', '!=', $member->id)完全可以。

标签: php laravel eloquent query-builder


【解决方案1】:

请尝试以下代码

public function edit(Member $member)
{
    $data = DB::table("members")
        ->where('nid_number', '=','7357665970')
        ->whereNotIn('id', [$member->id])
        ->count();
    dd($data);
}

whereIn 方法验证给定列的值是否包含在给定数组中。

https://laravel.com/docs/7.x/queries

【讨论】:

    【解决方案2】:

    您需要在编辑过程中以这种方式检查存在性

    public function edit(Member $member)
    {
        if(DB::table("members")->where('nid_number', '=','7357665970')->where('id','!=',$member->id)->exists())
           return true;
        else
           return false;
    }
    

    注意:你不要 whereNotIn 为单个 id,它必须是一个数组

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 2015-08-08
      • 2021-09-29
      • 2016-07-05
      相关资源
      最近更新 更多