将变量传递到 Laravel 的高级Where
在 Laravel 中,通过 whereExists 方法使用子查询非常简单。然而,当需要将外部变量纳入闭包中时,就会出现挑战。使用外部变量,例如 $this->city->id,会降低代码效率。
解决方案:使用 'use' 关键字
为了解决这个问题,use 关键字允许将必要的变量从父作用域传递到闭包中。这种方法可以方便地在闭包中使用外部变量。
例如:
DB::table('users') ->where(function ($query) use ($activated) { $query->where('activated', '=', $activated); }) ->get();
PHP 7.4 更新:箭头函数
PHP 7.4 引入了箭头函数,这是一种更简洁的匿名函数形式。这提供了一种更加简化的将变量传递到闭包的方法。
这是在 PHP 7.4 中使用箭头函数的示例:
DB::table('users') ->where(fn($query) => $query->where('activated', '=', $activated)) ->get();
与常规语法相比,箭头函数有以下差异:
以上是如何高效地将变量传递到 Laravel 的'whereExists”子查询中?的详细内容。更多信息请关注PHP中文网其他相关文章!