【问题标题】:Laravel mongodb aggregationLaravel MongoDB 聚合
【发布时间】:2020-01-21 21:01:10
【问题描述】:

是否可以在原始函数中使用外部变量?

$var = 'example';
$res = DB::collection("{$var}_products")->raw(function($collection) {
        global $var; 
        return $collection->aggregate([
                ['$lookup' => [
                    'from' => "{$var}_specifications",
                    'localField' => 'specifications_id',
                    'foreignField' => '_id',
                    'as' => 'specifications'
                ]]
            ]);
        });

我只找到了一个普通 SQL 的示例 (https://fideloper.com/laravel-raw-queries)

$someVariable = Input::get("some_variable");
$results = DB::select( DB::raw("SELECT * FROM some_table WHERE some_col = :somevariable"), array(
   'somevariable' => $someVariable,
 ));

【问题讨论】:

    标签: php laravel mongodb jenssegers-mongodb


    【解决方案1】:

    像这样在函数闭包中使用变量

    $var = 'example';
    $res = DB::collection("{$var}_products")->raw(function($collection) use ($var) {
            return $collection->aggregate([
                    ['$lookup' => [
                        'from' => "{$var}_specifications",
                        'localField' => 'specifications_id',
                        'foreignField' => '_id',
                        'as' => 'specifications'
                    ]]
                ]);
            });
    

    【讨论】:

      猜你喜欢
      • 2019-04-12
      • 2020-04-16
      • 2015-12-06
      • 2020-11-02
      • 2017-09-03
      • 2012-05-10
      • 2017-10-24
      • 1970-01-01
      相关资源
      最近更新 更多