for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Noitran\RQL\Processors\Eloquent;
use Illuminate\Database\Eloquent\Builder;
use Noitran\RQL\Contracts\Expression\ExprInterface;
use Noitran\RQL\Contracts\Processor\SpecInterface;
use Noitran\RQL\Contracts\Processor\ProcessorInterface;
/**
* Class ApplyIfArray
*/
class ApplyIfArray implements SpecInterface
{
* @inheritdoc
public function isSatisfiedBy(ProcessorInterface $processor, ExprInterface $exprClass): bool
if (! in_array($exprClass->getExpression(), ['$in', '$notIn', '$between'], true)) {
return false;
}
return true;
public function apply(ProcessorInterface $processor, ExprInterface $exprClass): Builder
/** @var EloquentProcessor $processor */
$method = $processor::getMethodMap()[$exprClass->getExpression()];
return $processor->getBuilder()->{$method}(
$exprClass->getColumn(),
$exprClass->getValue()
);