Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
defineFields example
}
abstract
public
function
getEntityName
(
)
: string;
final
public
function
getFields
(
)
: CompiledFieldCollection
{
if
(
$this
->fields !== null
)
{
return
$this
->fields;
}
$fields
=
$this
->
defineFields
(
)
;
foreach
(
$this
->
defaultFields
(
)
as
$field
)
{
$fields
->
add
(
$field
)
;
}
foreach
(
$this
->extensions
as
$extension
)
{
$new
=
new
FieldCollection
(
)
;
$extension
->
extendFields
(
$new
)
;
foreach
(
$new
as
$field
)
{
$activeReviewsFilter
=
new
MultiFilter
(
MultiFilter::CONNECTION_OR,
[
new
EqualsFilter
(
'status', true
)
]
)
;
if
(
$customer
=
$context
->
getCustomer
(
)
)
{
$activeReviewsFilter
->
addQuery
(
new
EqualsFilter
(
'customerId',
$customer
->
getId
(
)
)
)
;
}
$association
->
addFilter
(
$activeReviewsFilter
)
;
}
}
protected
function
defineFields
(
)
: FieldCollection
{
$fields
= parent::
defineFields
(
)
;
$fields
->
add
(
(
new
JsonField
(
'calculated_price', 'calculatedPrice'
)
)
->
addFlags
(
new
ApiAware
(
)
,
new
Runtime
(
\
array_merge
(
self::PRICE_BASELINE,
[
'price', 'prices'
]
)
)
)
)
;
$fields
->
add
(
(
new
ListField
(
'calculated_prices', 'calculatedPrices'
)
)
->
addFlags
(
new
ApiAware
(
)
,
new
Runtime
(
\
array_merge
(
self::PRICE_BASELINE,
[
'prices'
]
)
)
)
)
;
$fields
->
add
(
(
new
IntField
(
'calculated_max_purchase', 'calculatedMaxPurchase'
)
)
->
addFlags
(
new
ApiAware
(
)
,
new
Runtime
(
[
'maxPurchase'
]
)
)
)
;
$fields
->
add
(
(
public
string
$notExposed
= 'test';
}
/** * @internal */
class
ExtensionDefinition
extends
ProductDefinition
{
protected
function
defineFields
(
)
: FieldCollection
{
$fields
= parent::
defineFields
(
)
;
$fields
->
add
(
(
new
ManyToOneAssociationField
(
'exposedExtension', 'my_extension_id', ProductManufacturerDefinition::
class
)
)
->
addFlags
(
new
Extension
(
)
,
new
ApiAware
(
)
)
)
;
$fields
->
add
(
(
new
ManyToOneAssociationField
(
'notExposedExtension', 'my_extension_id', ProductManufacturerDefinition::
class
)
)
->
addFlags
(
new
Extension
(
)
)
)
;
$fields
->
add
(
(
new
FkField
(
'exposed_fk', 'exposedFk', ProductManufacturerDefinition::
class
)
)
->
addFlags
(
new
Extension
(
)
,
new
ApiAware
(
)
)
)
;
$fields
->
add
(
(