login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Symfony2] Integreren van een datetime picker (Opgelost)

Offline Martijn2008 - 28/03/2013 13:14 (laatste wijziging 28/03/2013 13:17)
Avatar van Martijn2008PHP beginner Hallo allemaal,

Ik ben bezig met het integreren van een datetime picker in mijn Symfony2 project. Nou krijg ik het niet werkend, wat wil het geval..

Voor het bouwen van de datetime picker gebruik ik deze tutorial. In de tutorial wordt een item toegevoegd aan een services.yml bestand, echter ik maak in mijn bundle gebruik van een services.xml bestand. Daar ligt naar mijn inziens ook het probleem, de vertaalslag. Ik krijg de volgende foutmelding:

  1. RuntimeException: The autoloader expected class "Acme\CmsBundle\Form\Type\DateTimePickerType" to be defined in file "/var/www/vhosts/symfony2.local/src//Acme/CmsBundle/Form/Type/DateTimePickerType.php". The file was found but the class was not in it, the class name or namespace probably has a typo.


Mijn service.xml bestand ziet er zo uit:

  1. <?xml version="1.0" ?>
  2.  
  3. <container xmlns="http://symfony.com/schema/dic/services"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
  6.  
  7. <services>
  8. <service id="acme_cmsbundle.form.type.datetimepicker" class="Acme\CmsBundle\Form\Type\DateTimePickerType">
  9. <tag name="form.type" alias="cms_type_datetime_picker" />
  10. </service>
  11. </services>
  12. </container>


Weet iemand de oplossing? Alvast bedankt.

Martijn

P.s. Voor de huidige vertaling heb ik de documentatie van Symfony bekeken. Jammer, dat ik geen on-the-fly converter heb kunnen vinden van .yml naar xml.

8 antwoorden

Gesponsorde links
Offline WouterJ - 28/03/2013 14:36 (laatste wijziging 28/03/2013 14:38)
Avatar van WouterJ HTML gevorderde Nou, vertaal eens de error melding en controleer eens je class/namespace in het bestand. Klopt alles wel? Geen typos? Ect?

En je begrijpt hopelijk dat dat Acme een voorbeeld vendor name is? Het is beter om een eigen te gebruiken, bijv. Martijn of iets wat met je project te maken heeft. Zo gebruik ik altijd Wj. En zo zijn er bijv. ook vendors als Knp (van KnpLabs), Fos (Friends Of Symfony), Jms (van Johannes Smitt)
Offline UpLink - 28/03/2013 14:38 (laatste wijziging 28/03/2013 14:40)
Avatar van UpLink ... weet niet of het effectief zo hoort, maar in je foutmelding staan een dubbele slash tussen src en Acme

  1. RuntimeException: The autoloader expected class "Acme\CmsBundle\Form\Type\DateTimePickerType" to be defined in file "/var/www/vhosts/symfony2.local/src//Acme/CmsBundle/Form/Type/DateTimePickerType.php". The file was found but the class was not in it, the class name or namespace probably has a typo.



//EDIT:

typo.
Offline WouterJ - 28/03/2013 14:52
Avatar van WouterJ HTML gevorderde UpLink, goed gevonden! Alleen het is denk ik niet het probleem: "The file was found but the class was not in it"
Offline Martijn2008 - 28/03/2013 23:38
Avatar van Martijn2008 PHP beginner
WouterJ schreef:
Nou, vertaal eens de error melding en controleer eens je class/namespace in het bestand. Klopt alles wel? Geen typos? Ect?

En je begrijpt hopelijk dat dat Acme een voorbeeld vendor name is? Het is beter om een eigen te gebruiken, bijv. Martijn of iets wat met je project te maken heeft. Zo gebruik ik altijd Wj. En zo zijn er bijv. ook vendors als Knp (van KnpLabs), Fos (Friends Of Symfony), Jms (van Johannes Smitt)


Ik kan het probleem niet vinden ...zie jij misschien de oplossing?

  1. // src/Me/MyBundle/Form/Type/
  2.  
  3. namespace Acme\CmsBundle\Form\Type;
  4.  
  5. use Symfony\Component\Form\AbstractType;
  6.  
  7. class DateTimePickerType extends AbstractType
  8. {
  9. public function getDefaultOptions(array $options)
  10. {
  11. return array(
  12. 'widget' => 'single_text',
  13. 'format' => 'dd/MM/yyyy HH:mm',
  14. 'attr' => array(
  15. 'autocomplete' => 'off',
  16. 'class' => 'cmsbundle_datetime_picker',
  17. ),
  18. );
  19. }
  20.  
  21. public function getParent()
  22. {
  23. return 'date';
  24. }
  25.  
  26. public function getName()
  27. {
  28. return 'cmsbundle_type_datetime_picker';
  29. }
  30. }
Offline WouterJ - 28/03/2013 23:48
Avatar van WouterJ HTML gevorderde src/Me/MyBundle/Form/Type/
Acme\CmsBundle\Form\Type

Zoek de verschillen 
Offline Martijn2008 - 28/03/2013 23:52
Avatar van Martijn2008 PHP beginner Ik zie dat de slashes naar links ( \ ) zijn gericht, echter als ik dat aanpas krijg ik een foutmelding dat een slash naar rechts ( / ) geen geldige namespace notering is. Of zie ik iets over het hoofd?
Offline WouterJ - 29/03/2013 00:09
Avatar van WouterJ HTML gevorderde src/Me/MyBundle/Form/Type/
Acme\CmsBundle\Form\Type
Bedankt door: Martijn2008
Offline Martijn2008 - 29/03/2013 12:42 (laatste wijziging 29/03/2013 12:57)
Avatar van Martijn2008 PHP beginner Ok, bedoel je het zo, die eerste lijn stond als command in de tutorial, die heb ik laten staan. Het bestand, staat vanaf de root gezien in: src/Acme/CmsBundle/Form/Type

Ik heb al van alles geprobeerd, maar krijg het niet werkend. Mist er soms een argument in het item van services.xml?

Voor het gemak zal ik even de exacte locaties van de betrokken bestanden hieronder opsommen (vanaf de root van het project):

services.xml : src/Acme/CmsBundle/Resources/config/services.xml
DateTimePickerType.php : src/Acme/CmsBundle/Form/Type/DateTimePickerType.php
fields.html.twig : src/Acme/CmsBundle/Resources/views/Form/fields.html.twig
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s