ElementQueryConditionBuilder ​
- Type
- Class
- Namespace
- craft\gql
- Inherits
- craft\gql\ElementQueryConditionBuilder » craft\base\Component » craft\base\Model » yii\base\Model » yii\base\Component » yii\base\BaseObject
- Implements
- ArrayAccess, IteratorAggregate, craft\base\ComponentInterface, yii\base\Arrayable, yii\base\Configurable, yii\base\StaticInstanceInterface
- Uses traits
- craft\base\ClonefixTrait, yii\base\ArrayableTrait, yii\base\StaticInstanceTrait
- Since
- 3.5.0
Class ElementQueryConditionBuilder.
This class is used to analyze a GraphQL query tree based on its ResolveInfo object and generate an array of [method => parameters] to be called on the element query to ensure eager-loading of everything applicable.
Public Properties ​
Property | Description |
---|---|
activeValidators | yii\validators\Validator – The validators applicable to the current scenario. |
argumentManager | craft\gql\ArgumentManager |
attributes | array – Attribute values (name => value). |
behaviors | yii\base\Behavior – List of behaviors attached to this component. |
errors | array – Errors for all attributes or the specified attribute. |
firstErrors | array – The first errors. |
iterator | ArrayIterator – An iterator for traversing the items in the list. |
resolveInfo | \GraphQL\Type\Definition\ResolveInfo |
scenario | string – The scenario that this model is in. |
validators | ArrayObject, yii\validators\Validator – All the validators declared in the model. |
argumentManager
​
- Type
- craft\gql\ArgumentManager
- Default value
null
- Access
- Write-only
- Since
- 3.6.0
resolveInfo
​
- Type
\GraphQL\Type\Definition\ResolveInfo
- Default value
null
- Access
- Write-only
Public Methods ​
Method | Description |
---|---|
__call() | Calls the named method which is not a class method. |
__clone() | This method is called after the object is created by cloning an existing one. |
__construct() | Constructor. |
__get() | Returns the value of a component property. |
__isset() | Checks if a property is set, i.e. defined and not null. |
__set() | Sets the value of a component property. |
__unset() | Sets a component property to be null. |
activeAttributes() | Returns the attribute names that are subject to validation in the current scenario. |
addError() | Adds a new error to the specified attribute. |
addErrors() | Adds a list of errors. |
addModelErrors() | Adds errors from another model, with a given attribute name prefix. |
afterValidate() | This method is invoked after validation ends. |
attachBehavior() | Attaches a behavior to this component. |
attachBehaviors() | Attaches a list of behaviors to the component. |
attributeHints() | Returns the attribute hints. |
attributeLabels() | Returns the attribute labels. |
attributes() | Returns the list of attribute names. |
beforeValidate() | This method is invoked before validation starts. |
behaviors() | Returns a list of behaviors that this component should behave as. |
canGetProperty() | Returns a value indicating whether a property can be read. |
canNodeBeAliased() | |
canSetProperty() | Returns a value indicating whether a property can be set. |
className() | Returns the fully qualified name of this class. |
clearErrors() | Removes errors for all attributes or a single attribute. |
createValidators() | Creates validator objects based on the validation rules specified in rules(). |
datetimeAttributes() | Returns the names of any attributes that should hold DateTime values. |
detachBehavior() | Detaches a behavior from the component. |
detachBehaviors() | Detaches all behaviors from the component. |
displayName() | Returns the display name of this class. |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. |
extraFields() | Returns the list of fields that can be expanded further and returned by toArray(). |
extractQueryConditions() | Extract the query conditions based on the resolve information passed in the constructor. |
fields() | Returns the list of fields that should be returned by default by toArray() when no specific fields are specified. |
formName() | Returns the form name that this model class should use. |
generateAttributeLabel() | Generates a user friendly attribute label based on the give attribute name. |
getActiveValidators() | Returns the validators applicable to the current scenario. |
getAttributeHint() | Returns the text hint for the specified attribute. |
getAttributeLabel() | Returns the text label for the specified attribute. |
getAttributes() | Returns attribute values. |
getBehavior() | Returns the named behavior object. |
getBehaviors() | Returns all behaviors attached to this component. |
getError() | Returns the first error of the specified attribute. |
getErrorSummary() | Returns the errors for all attributes as a one-dimensional array. |
getErrors() | Returns the errors for all attributes or a single attribute. |
getFirstError() | Returns the first error of the specified attribute. |
getFirstErrors() | Returns the first error of every attribute in the model. |
getIterator() | Returns an iterator for traversing the attributes in the model. |
getScenario() | Returns the scenario that this model is used in. |
getValidators() | Returns all the validators declared in rules(). |
hasErrors() | Returns a value indicating whether there is any validation error. |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. |
hasMethod() | Returns a value indicating whether a method is defined. |
hasProperty() | Returns a value indicating whether a property is defined for this component. |
init() | Initializes the object. |
instance() | Returns static class instance, which can be used to obtain meta information. |
isAttributeActive() | Returns a value indicating whether the attribute is active in the current scenario. |
isAttributeRequired() | Returns a value indicating whether the attribute is required. |
isAttributeSafe() | Returns a value indicating whether the attribute is safe for massive assignments. |
isSelectable() | Returns whether the component should be selectable in component Type selects. |
load() | Populates the model with input data. |
loadMultiple() | Populates a set of models with the data from end user. |
off() | Detaches an existing event handler from this component. |
offsetExists() | Returns whether there is an element at the specified offset. |
offsetGet() | Returns the element at the specified offset. |
offsetSet() | Sets the element at the specified offset. |
offsetUnset() | Sets the element value at the specified offset to null. |
on() | Attaches an event handler to an event. |
onUnsafeAttribute() | This method is invoked when an unsafe attribute is being massively assigned. |
rules() | Returns the validation rules for attributes. |
safeAttributes() | Returns the attribute names that are safe to be massively assigned in the current scenario. |
scenarios() | Returns a list of scenarios and the corresponding active attributes. |
setArgumentManager() | Set the current ResolveInfo object. |
setAttributes() | Sets the attribute values in a massive way. |
setResolveInfo() | Set the current ResolveInfo object. |
setScenario() | Sets the scenario for the model. |
toArray() | Converts the model into an array. |
trigger() | Triggers an event. |
validate() | Performs the data validation. |
validateMultiple() | Validates multiple models. |
__construct()
​
Constructor.
The default implementation does two things:
- Initializes the object with the given configuration
$config
. - Call init().
If this method is overridden in a child class, it is recommended that
- the last parameter of the constructor is a configuration array, like
$config
here. - call the parent implementation at the end of the constructor.
Arguments ​
$config
(array) – Name-value pairs that will be used to initialize the object properties
canNodeBeAliased()
​
Arguments ​
Returns ​
extractQueryConditions()
​
Extract the query conditions based on the resolve information passed in the constructor.
Returns an array of [methodName => parameters] to be called on the element query.
Arguments ​
$startingParentField
(craft\base\FieldInterface) – The starting parent field for the extraction, if any
Returns ​
setArgumentManager()
​
- Since
- 3.6.0
Set the current ResolveInfo object.
Arguments ​
$argumentManager
(craft\gql\ArgumentManager)
setResolveInfo()
​
Set the current ResolveInfo object.
Arguments ​
$resolveInfo
(\GraphQL\Type\Definition\ResolveInfo
)
Protected Methods ​
Method | Description |
---|---|
defineRules() | Returns the validation rules for attributes. |
extractFieldsFor() | Extract nested fields from a fields collection for a given root field Nested fields are separated with dots (.). e.g: "item.id" The previous example would extract "id". |
extractRootFields() | Extracts the root field names from nested fields. |
resolveFields() | Determines which fields can be returned by toArray(). |
Constants ​
Constant | Description |
---|---|
LOCALIZED_NODENAME | |
SCENARIO_DEFAULT | The name of the default scenario. |
Events ​
EVENT_REGISTER_GQL_EAGERLOADABLE_FIELDS ​
- Type
- craft\events\RegisterGqlEagerLoadableFields
- Since
- 3.5.0
The event that is triggered when registering additional eager-loading nodes.
Plugins get a chance to add their own eager-loadable fields.
Example ​
php
use craft\events\RegisterGqlEagerLoadableFields;
use craft\gql\ElementQueryConditionBuilder;
use yii\base\Event;
Event::on(ElementQueryConditionBuilder::class, ElementQueryConditionBuilder::EVENT_REGISTER_GQL_EAGERLOADABLE_FIELDS, function(RegisterGqlEagerLoadableFields $event) {
// Add my fields
$event->fieldList['myEagerLoadableField'] = ['*'];
});