Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
buildPathArray example
private
function
updateTree
(
array
$entity
, EntityDefinition
$definition
, Context
$context
)
: string
{
$query
=
$this
->connection->
createQueryBuilder
(
)
;
$escaped
= EntityDefinitionQueryHelper::
escape
(
$definition
->
getEntityName
(
)
)
;
$query
->
update
(
$escaped
)
;
/** @var TreePathField $pathField */
foreach
(
$definition
->
getFields
(
)
->
filterInstance
(
TreePathField::
class
)
as
$pathField
)
{
$path
= 'null';
if
(
\
array_key_exists
(
'parent',
$entity
)
)
{
$path
= '"|' .
implode
(
'|',
$this
->
buildPathArray
(
$entity
[
'parent'
]
,
$pathField
)
)
. '|"';
}
$query
->
set
(
$pathField
->
getStorageName
(
)
,
$path
)
;
}
/** @var TreeLevelField $field */
foreach
(
$definition
->
getFields
(
)
->
filterInstance
(
TreeLevelField::
class
)
as
$field
)
{
$level
= 1;
if
(
\
array_key_exists
(
'parent',
$entity
)
)
{
$level
=
$entity
[
'parent'
]
[
'parentCount'
]
+ 1;
}