【问题标题】:I need help writing Advance Laravel Where Clause [duplicate]我需要帮助编写 Advance Laravel Where 子句 [重复]
【发布时间】:2020-03-31 13:34:33
【问题描述】:
public function searchBook(Request $request, $dep, $bTitleAuthor)
{
   if($request->ajax()) {
       $books = Book::where('department_id', $dep)
       ->where(function($query) {
           $query->where('title', 'like', '%'.$bTitleAuthor.'%')
           ->orWhere('author', 'like', '%'.$bTitleAuthor.'%');
       });
   }
}

这是我在 Laravel 页面上看到的,但在他们的示例中,他们使用了原始值。我正在使用函数中的参数,$bTitleAuthor 给我错误,它是一个“未定义的变量”。

最后,我想实现这样的目标:

SELECT * FROM books
WHERE department_id = '$dep' 
AND (
    WHERE title LIKE '$bTitleAuthor' 
    OR author LIKE '$bTitleAuthor'
);

【问题讨论】:

    标签: laravel


    【解决方案1】:

    对于匿名函数,您需要表明您想使用范围之外的变量:

    $books = Book::where('department_id', $dep)
      ->where(function($query) use ($bTitleAuthor) {
        $query->where('title', 'like', '%'.$bTitleAuthor.'%')
        ->orWhere('author', 'like', '%'.$bTitleAuthor.'%');
      });
    

    了解有关匿名函数的更多信息:https://www.php.net/manual/en/functions.anonymous.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多