Cake\Database\Query::traverse PHP Метод

traverse() публичный Метод

The callback will receive 2 parameters, the first one is the value of the query part that is being iterated and the second the name of such part. ### Example: $query->select(['title'])->from('articles')->traverse(function ($value, $clause) { if ($clause === 'select') { var_dump($value); } }, ['select', 'from']);
public traverse ( callable $visitor, array $parts = [] )
$visitor callable A function or callable to be executed for each part
$parts array The query clauses to traverse
    public function traverse(callable $visitor, array $parts = [])
    {
        $parts = $parts ?: array_keys($this->_parts);
        foreach ($parts as $name) {
            $visitor($this->_parts[$name], $name);
        }
        return $this;
    }

Usage Example

Пример #1
0
 /**
  * Returns the SQL representation of the provided query after generating
  * the placeholders for the bound values using the provided generator
  *
  * @param \Cake\Database\Query $query The query that is being compiled
  * @param \Cake\Database\ValueBinder $generator the placeholder generator to be used in expressions
  * @return \Closure
  */
 public function compile(Query $query, ValueBinder $generator)
 {
     $sql = '';
     $type = $query->type();
     $query->traverse($this->_sqlCompiler($sql, $query, $generator), $this->{'_' . $type . 'Parts'});
     return $sql;
 }
All Usage Examples Of Cake\Database\Query::traverse