代码之家  ›  专栏  ›  技术社区  ›  Nevermore

拉瓦维尔和哪里不存在

  •  1
  • Nevermore  · 技术社区  · 6 年前

    这是我的问题;

    SELECT * FROM digital_cases WHERE name LIKE $request->name . '%' 
    AND added_by IN (SELECT id FROM assistants WHERE firstname LIKE $request->addedBy . '%');
    

    我试过了:

    $digital_cases = DB::table('digital_cases');
    
    if ($request->has('caseName')) {
        $digital_cases = $digital_cases->where('name', 'LIKE', $request->caseName . '%');
        if ($request->has('addedBy')) {
            $addedBy = $request->addedBy;
            $digital_cases = $digital_cases->andWhere('added_by', 'IN', function ($digital_cases) use ($addedBy) {
                DB::table('assistants')->select('id')->whereIn('firstname', 'LIKE', $addedBy . '%');
            });
        }
    }
    
    
    $digital_cases = $digital_cases->get();
    

    我删除了之前的问题是错误的,但现在一切似乎都好。但我犯了个错误:

    方法illumed\database\query\builder::andwhere不存在。

    1 回复  |  直到 6 年前
        1
  •  4
  •   Rwd    6 年前

    只是使用 where() 是的。

    默认情况下,拉维尔会假设你想 AND WHERE ,当你想使用 OR 你必须具体点,即。 orWhere() 是的。