Tarih alanınızın biçimini yerel ayarlara bağlı olarak değiştirmek isterseniz, özel bir alan oluşturun ve tarih yerine kullanın. Farkında olduğum tek yol bu.
Birincisi, hizmet oluşturmak ve argümanlar içinde yerel pass:
# src/Acme/DemoBundle/Resources/config/services.yml
services:
acme_demo.form.type.localedate:
class: Acme\DemoBundle\Form\Type\LocaleDateType
arguments:
- "%locale%"
tags:
- { name: form.type, alias: localedate }
yeni alan türü için kodu ile sınıf oluşturun. Gördüğünüz gibi, bu alan türü tarihine göre ve geçerli yerele bağlı biçimini değiştirir oluyor:
$builder->add('date_created', 'localedate', array(
'widget' => 'single_text',
));
it Umut:
// src/Acme/DemoBundle/Form/Type/LocaleDateType.php
namespace Acme\DemoBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class LocaleDateType extends AbstractType
{
private $locale;
public function __construct($locale)
{
$this->locale = $locale;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'format' => $this->getFormat(),// return the format depending on locale
));
}
private function getFormat() {
switch($this->locale) {
case 'es':
return 'dd-MM-yyyy';// return valid date format for this locale
default:
return 'yyyy-MM-dd';
}
}
public function getParent()
{
return 'date';
}
public function getName()
{
return 'localedate';
}
}
date
alan türü yerine uygulamanızda kullanın yardım eder.
Saygılarımızla.
, http://symfony.com/doc/current/cookbook/form/create_custom_field_type.html –