Symfony:Catchable Fatal Error: Object of class Closure could not be converted to string

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Symfony:Catchable Fatal Error: Object of class Closure could not be converted to string

Re: Symfony:Catchable Fatal Error: Object of class Closure could not be converted to string

par Gregory » 07 déc. 2016, 10:57

Tu peux aussi mettre dans tes entités une méthode __toString afin de mettre ce que tu veux afficher.

Re: Symfony:Catchable Fatal Error: Object of class Closure could not be converted to string

par zeus » 28 juil. 2016, 16:49

Je ne suis pas persuadé que la ligne d'output que tu nous montres soit la bonne. Il s'agit d'un message de type "DEBUG" qui ne devrait pas bloquer ton script.

Par contre, tu nous parles de plusieurs soucis j'ai l'impression.

Tu pourrais nous faire un résumé de ton soucis ACTUEL ?

Re: Symfony:Catchable Fatal Error: Object of class Closure could not be converted to string

par syrine01 » 11 juil. 2016, 14:59

j'ai essayé de corriger mon code et voilà la dernier version:

Code : Tout sélectionner

public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('groups', 'entity',array( 'class' => 'GroupsBundle:Roles', 'property' => 'name_role', 'required' => false, 'placeholder' => 'Choisir le role du votre groupe' ) ) ->add('permissions_role','entity',array( 'class' => 'GroupsBundle:Permissions', 'property' => 'name_permissions', 'multiple' => true, 'expanded' => true, 'required' => true ) ) ; }
Le formulaire est bien affiché avec les différents rôles et les permissions sauf que le serveur ne peut pas traité la requête (j'en sais pas pourquoi !!):
//l'erreur
The 127.0.0.1 page isn’t working
127.0.0.1 is currently unable to handle this request.
HTTP ERROR
Voilà le fichier log du mon serveur SF 2.7:

Code : Tout sélectionner

Dev.log [2016-07-12 00:23:49] doctrine.DEBUG: SELECT p0_.id_per AS id_per0, p0_.nom_permisions AS nom_permisions1 FROM permissions p0_ [] [] [2016-07-12 00:23:49] doctrine.DEBUG: SELECT r0_.id AS id0, r0_.nom_roles AS nom_roles1 FROM roles r0_ WHERE r0_.id IN (?) [["0"]] [] [2016-07-12 01:51:58] php.DEBUG: fsockopen(): unable to connect to 127.0.0.1:8000 (Connection refused) {"type":2,"file":"/home/syrine01/Desktop/Project_Console/ vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ServerCommand.php","line":59,"l evel":28928} [] // ici le probléme WARNING - Translation not found. Context: {"id":"Image","domain":"messages","locale":"fr"} WARNING - Translation not found. Context: {"id":"File","domain":"messages","locale":"fr"} WARNING - Translation not found. Context: {"id":"Name groups","domain":"messages","locale":"fr"} WARNING - Translation not found. Context: {"id":"Nom du groupe","domain":"messages","locale":"fr"} WARNING - Translation not found. Context: {"id":"Role","domain":"messages","locale":"fr"} WARNING - Translation not found. Context: {"id":"Groups","domain":"messages","locale":"fr"} WARNING - Translation not found. Context: {"id":"Choisir le role du votre groupe","domain":"messages","locale":"fr"} WARNING - Translation not found. Context: {"id":"Permissions role","domain":"messages","locale":"fr"} WARNING - Translation not found. INFO - Matched route "groups_new". Context: {"route_parameters":{"_controller":"MemberShipManagement\\GroupsBundle\\Controller\\ GroupsController::newAction","_route":"groups_new"},"request_uri":"http://127.0.0.1:8000/groups/new"} DEPRECATED - The Symfony\Component\Form\Extension\Csrf\CsrfProvider\ CsrfProviderAdapter class is deprecated since version 2.4 and will be removed in version 3.0. Use the Symfony\Component\Security\Csrf\CsrfTokenManager class instead. + INFO - Populated the TokenStorage with an anonymous Token. DEPRECATED - MemberShipManagement\GroupsBundle\Form\GroupsType: The FormTypeInterface::setDefaultOptions() method is deprecated since version 2.7 and will be removed in 3.0. Use configureOptions() instead. This method will be added to the FormTypeInterface with Symfony 3.0. + DEPRECATED - MemberShipManagement\GroupsBundle\Form\ImagesType: The FormTypeInterface::setDefaultOptions() method is deprecated since version 2.7 and will be removed in 3.0. Use configureOptions() instead. This method will be added to the FormTypeInterface with Symfony 3.0. + DEPRECATED - MemberShipManagement\GroupsBundle\Form\RolesType: The FormTypeInterface::setDefaultOptions() method is deprecated since version 2.7 and will be removed in 3.0. Use configureOptions() instead. This method will be added to the FormTypeInterface with Symfony 3.0. + DEPRECATED - The "property" option is deprecated since version 2.7 and will be removed in 3.0. Use "choice_label" instead.
Merci :)

Re: Symfony:Catchable Fatal Error: Object of class Closure could not be converted to string

par syrine01 » 11 juil. 2016, 00:28

c'est pas plutôt (string) $dynamicLabel qui pose problème ?
apparemment, $dynamicLabel est un objet donc ne peut pas être transformé en chaine.
Merci pour ta réponse mon ami, mais tu sais ou je corrige ça !
la variable "groups" du formulaire est de type "collection".

Merci encore

Re: Symfony:Catchable Fatal Error: Object of class Closure could not be converted to string

par or 1 » 10 juil. 2016, 21:40

c'est pas plutôt (string) $dynamicLabel qui pose problème ?
apparemment, $dynamicLabel est un objet donc ne peut pas être transformé en chaine.

Symfony:Catchable Fatal Error: Object of class Closure could not be converted to string

par syrine01 » 10 juil. 2016, 20:32

Bonjour tous,

j'ai ce probléme lorsque j'affiche le formulaire du création du groupe et j'arrive pas a avancer dans mon projet :
L'erreur;
Catchable Fatal Error: Object of class Closure could not be converted to string
500 Internal Server Error - ContextErrorException

Stack Trace
in vendor/symfony/symfony/src/Symfony/Component/Form/ChoiceList/Factory/DefaultChoiceListFactory.php at line 166 -
// If "choice_label" is set to false and "expanded" is true, the value false
// should be passed on to the "label" option of the checkboxes/radio buttons
$dynamicLabel = call_user_func($label, $choice, $key, $value);
$label = false === $dynamicLabel ? false : (string) $dynamicLabel;
}
$view = new ChoiceView
-Voilà mes formType:
Class GroupType

Code : Tout sélectionner

class GroupsType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('image', new ImagesType()) ->add('name_groups','text',array('required' => true, 'attr' => array('placeholder' => 'Nom du groupe'))) ->add('role', new RolesType()) ; }
-Class RoleType:

Code : Tout sélectionner

class RolesType extends AbstractType { /** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('groups', 'choice', array( 'choices' => array( 'class' => 'GroupsBundle:Roles', 'query_builder' => function(EntityRepository $er) { return $er->createQueryBuilder('r') ->orderBy('r.id', 'ASC'); }, 'required' => false, 'multiple' => false, 'expanded' => false, 'placeholder' => 'Choisir le role du votre groupe' ) ) ) ->add('permissions_role','entity',array( 'class' => 'GroupsBundle:Permissions', 'multiple' => true, 'expanded' => true, 'query_builder' => function(EntityRepository $er) { return $er->createQueryBuilder('u') ->orderBy('u.name_permissions', 'ASC'); }, 'required' => true ) ) ; }
En effet, que le groupe doit avoir obligatoirement un rôle et un rôle peut ou ne peut pas avoir un groupe.
Une permission peut ou ne peut pas avoir des rôles et un rôle peut avoir plusieurs ou un rôle.

Merci de résoudre le probléme mes amis ;(