mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-12 21:34:25 +00:00
formType transform string id in entities, wip
This commit is contained in:
parent
5822736f19
commit
741ed84918
@ -30,6 +30,10 @@ use Chill\MainBundle\Form\Type\UserPickerType;
|
|||||||
use Chill\MainBundle\Form\Type\ScopePickerType;
|
use Chill\MainBundle\Form\Type\ScopePickerType;
|
||||||
use Chill\MainBundle\Form\Type\ChillDateType;
|
use Chill\MainBundle\Form\Type\ChillDateType;
|
||||||
|
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||||
|
use Symfony\Component\Form\CallbackTransformer;
|
||||||
|
use Chill\PersonBundle\Form\DataTransformer\PersonToIdTransformer;
|
||||||
|
|
||||||
class ActivityType extends AbstractType
|
class ActivityType extends AbstractType
|
||||||
{
|
{
|
||||||
protected User $user;
|
protected User $user;
|
||||||
@ -161,34 +165,42 @@ class ActivityType extends AbstractType
|
|||||||
|
|
||||||
if ($activityType->isVisible('persons')) {
|
if ($activityType->isVisible('persons')) {
|
||||||
// TODO Faire évoluer le selecteur et la query <=
|
// TODO Faire évoluer le selecteur et la query <=
|
||||||
$builder->add('persons', EntityType::class, [
|
$builder->add('persons', HiddenType::class);
|
||||||
'label' => $activityType->getLabel('persons'),
|
$builder->get('persons')
|
||||||
'required' => $activityType->isRequired('persons'),
|
//->addModelTransformer(new PersonToIdTransformer($this->om));
|
||||||
'class' => Person::class,
|
|
||||||
'multiple' => true,
|
->addModelTransformer(new CallbackTransformer(
|
||||||
'choice_label' => function (Person $person) {
|
function ($personsAsArray) {
|
||||||
return $person->getFullnameCanonical();
|
dump('personsAsArray', $personsAsArray); //Doctrine\Common\Collections\ArrayCollection
|
||||||
},
|
// transform the array to a string
|
||||||
'query_builder' => function (EntityRepository $er) {
|
//return implode(',', $personsAsArray);
|
||||||
return $er->createQueryBuilder('a');
|
return $personsAsArray;
|
||||||
},
|
},
|
||||||
]);
|
function ($personsAsString) {
|
||||||
|
dump('personsAsString', $personsAsString); //"1188,1259,1229,1223"
|
||||||
|
// transform the string back to an array
|
||||||
|
return explode(',', $personsAsString);
|
||||||
|
}
|
||||||
|
))
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($activityType->isVisible('thirdParties')) {
|
if ($activityType->isVisible('thirdParties')) {
|
||||||
// TODO Faire évoluer le selecteur et la query <=
|
// TODO Faire évoluer le selecteur et la query <=
|
||||||
$builder->add('thirdParties', EntityType::class, [
|
$builder->add('thirdParties', HiddenType::class, []);
|
||||||
'label' => $activityType->getLabel('thirdParties'),
|
$builder->get('thirdParties')
|
||||||
'required' => $activityType->isRequired('thirdParties'),
|
->addModelTransformer(new CallbackTransformer(
|
||||||
'class' => ThirdParty::class,
|
function ($personsAsArray) {
|
||||||
'multiple' => true,
|
// transform the array to a string
|
||||||
'choice_label' => function (ThirdParty $thirdParty) {
|
//return implode(',', $personsAsArray);
|
||||||
return $thirdParty->getName();
|
return $personsAsArray;
|
||||||
},
|
},
|
||||||
'query_builder' => function (EntityRepository $er) {
|
function ($personsAsString) {
|
||||||
return $er->createQueryBuilder('a');
|
// transform the string back to an array
|
||||||
},
|
return explode(',', $personsAsString);
|
||||||
]);
|
}
|
||||||
|
))
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($activityType->isVisible('documents')) {
|
if ($activityType->isVisible('documents')) {
|
||||||
@ -202,18 +214,20 @@ class ActivityType extends AbstractType
|
|||||||
|
|
||||||
if ($activityType->isVisible('users')) {
|
if ($activityType->isVisible('users')) {
|
||||||
// TODO Faire évoluer le selecteur et la query <=
|
// TODO Faire évoluer le selecteur et la query <=
|
||||||
$builder->add('users', EntityType::class, [
|
$builder->add('users', HiddenType::class, []);
|
||||||
'label' => $activityType->getLabel('users'),
|
$builder->get('users')
|
||||||
'required' => $activityType->isRequired('users'),
|
->addModelTransformer(new CallbackTransformer(
|
||||||
'class' => User::class,
|
function ($personsAsArray) {
|
||||||
'multiple' => true,
|
// transform the array to a string
|
||||||
'choice_label' => function (User $user) {
|
//return implode(',', $personsAsArray);
|
||||||
return $user->getUsername();
|
return $personsAsArray;
|
||||||
},
|
},
|
||||||
'query_builder' => function (EntityRepository $er) {
|
function ($personsAsString) {
|
||||||
return $er->createQueryBuilder('u');
|
// transform the string back to an array
|
||||||
},
|
return explode(',', $personsAsString);
|
||||||
]);
|
}
|
||||||
|
))
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($activityType->isVisible('emergency')) {
|
if ($activityType->isVisible('emergency')) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user