示例#1
0
 /**
  * @param string                $id
  * @param string[]              $classes
  * @param string[]              $data
  * @param QueryWrapperInterface $query
  * @param mixed                 $default
  * @param FilterInterface|null  $nextFilter
  */
 public function __construct($id, array $classes, array $data, QueryWrapperInterface $query, $default, FilterInterface $nextFilter = null)
 {
     $this->relationName = array_slice(explode('\\', $query->getPascalCasedObjectName()), -1)[0];
     $relations = $query->find();
     $relationOptions = [];
     foreach ($relations as $relation) {
         $key = $this->makeRelationKey($relation);
         $relationName = (string) $relation;
         $this->relations[$key] = $relation;
         $relationOptions[$key] = $relationName;
     }
     $this->options = array_merge([$default, ''], $relationOptions, [static::ALL, static::ANY, static::NONE]);
     if ($nextFilter === null) {
         $this->nextFilter = new DummyFilter();
     } else {
         $this->nextFilter = $nextFilter;
     }
     $this->id = $id;
     $this->statements = [];
     $this->classes = $classes;
     $this->data = $data;
 }