for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Triadev\Leopard\Business\Dsl\Query;
use Triadev\Leopard\Business\Dsl\Search;
use ONGR\ElasticsearchDSL\Query\Joining\NestedQuery;
use ONGR\ElasticsearchDSL\Query\Joining\HasChildQuery;
use ONGR\ElasticsearchDSL\Query\Joining\HasParentQuery;
use Triadev\Leopard\Business\Dsl\AbstractQuery;
class Joining extends AbstractQuery
{
/**
* Nested
*
* @param string $path
* @param \Closure $search
* @param array $params
* @return Joining
*/
public function nested(string $path, \Closure $search, array $params = []) : Joining
$searchBuilder = app()->make(Search::class);
$search($searchBuilder);
return $this->append(
new NestedQuery(
$path,
$searchBuilder->getQuery(),
$params
)
);
}
* Has child
* @param string $type
public function hasChild(string $type, \Closure $search, array $params = []): Joining
return $this->append(new HasChildQuery($type, $searchBuilder->getQuery(), $params));
* Has parent
public function hasParent(string $type, \Closure $search, array $params = []): Joining
return $this->append(new HasParentQuery($type, $searchBuilder->getQuery(), $params));