Issues (32)

src/Builder/QueriesMeta.php (4 issues)

Labels
Severity
1
<?php
2
3
namespace Sanderdekroon\Parlant\Builder;
4
5
use Closure;
6
use InvalidArgumentException;
7
8
trait QueriesMeta
9
{
10
    /**
11
     * Query the meta values (custom post fields) of posts.
12
     * @param  string|array|Closure $column         The field name, an array of where clauses or an Closure detailing a nested where clause.
13
     * @param  string       $operator
14
     * @param  mixed        $value
15
     * @param  string       $type           The type comparison, for example NUMERIC or CHAR
16
     * @param  string       $relation       AND/OR, currently unimplemented
17
     * @param  integer      $level          The query level, currently unimplemented
18
     * @return $this
19
     */
20 8
    public function whereMeta($column, $operator = null, $value = null, $type = null, $relation = null, $level = 1)
21
    {
22 8
        $clause = new WhereMetaClause($this->getGrammar());
0 ignored issues
show
It seems like getGrammar() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

22
        $clause = new WhereMetaClause($this->/** @scrutinizer ignore-call */ getGrammar());
Loading history...
23
24 8
        foreach ($clause->build($column, $operator, $value, $type, $relation, $level) as $where) {
25 7
            $this->appendBinding('whereMetas', $where);
0 ignored issues
show
It seems like appendBinding() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

25
            $this->/** @scrutinizer ignore-call */ 
26
                   appendBinding('whereMetas', $where);
Loading history...
26
        }
27
28 7
        $this->setBinding('whereMetaRelation', $clause->getRelation() + ($this->getBinding('whereMetaRelation') ?: [1 => 'AND']));
0 ignored issues
show
It seems like getBinding() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

28
        $this->setBinding('whereMetaRelation', $clause->getRelation() + ($this->/** @scrutinizer ignore-call */ getBinding('whereMetaRelation') ?: [1 => 'AND']));
Loading history...
It seems like setBinding() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

28
        $this->/** @scrutinizer ignore-call */ 
29
               setBinding('whereMetaRelation', $clause->getRelation() + ($this->getBinding('whereMetaRelation') ?: [1 => 'AND']));
Loading history...
29
30 7
        return $this;
31
    }
32
33
    /**
34
     * Query the meta values (custom post fields) of posts and set the relation to OR
35
     * @param  string       $column         The field name
36
     * @param  string       $operator
37
     * @param  mixed        $value
38
     * @param  string       $type           The type comparison, for example NUMERIC or CHAR
39
     * @param  integer      $level          The query level, currently unimplemented
40
     * @return $this
41
     */
42 1
    public function orWhereMeta($column, $operator = null, $value = null, $type = null, $level = 1)
43
    {
44 1
        return $this->whereMeta($column, $operator, $value, $type, 'OR', $level);
45
    }
46
}
47