Laravel查询建立条件与当前查询使用when.

问题描述 投票:2回答:1

我如何使用laravel query builder的当前查询创建一个条件,这是否可能,我想它看起来像这样的东西

$record = $this->repository
   ->where('value', $value)
   ->when($thisQuery->get()->isNotEmpty(), static function(){
    //execute
    });
php mysql laravel conditional-statements laravel-query-builder
1个回答
2
投票

你可以在匿名函数中使用子查询,就像下面的例子一样。

 $record = $this->repository
            ->where('value', $value)
            ->where(function($query) {
                /** @var $query Illuminate\Database\Query\Builder  */
                return $query->where('foo', 'LIKE', '%foooo%')
                             ->orWhere('foo', 'bar');
            })
            ->get();

你也可以像下面这样运行多个where子句。

 $record = $this->repository
            ->where('value', $value)
            ->where('foo', 'bar')
            ->get();

而且取决于 requirements 使用适当的方式。

© www.soinside.com 2019 - 2024. All rights reserved.