我正在使用FOSUserBundle,但我已經覆蓋了默認控制器來創建我自己的邏輯和窗體。Symfony窗體文件驗證
這裏是我的ProfileFormType.php
namespace UserBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class ProfileFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('avatar', 'file', array('required' => false, 'data_class' => null));
$builder->add('phone', 'text', array('required' => false));
$builder->add('gender', 'choice', array(
'choices' => array('not specifed' => 'Не указан', 'male' => 'Мужской', 'female' => 'Женский'),
));
$builder->add('birthDate', 'date', array('years' => range(date('Y') -100, date('Y'))));
$builder->add('locationCountry', 'text', array('required' => false));
$builder->add('locationCity', 'text', array('required' => false));
}
public function getParent()
{
return 'fos_user_profile';
}
public function getName()
{
return 'app_user_profile';
}
}
這一刻,沒有文件擴展名的驗證。我應該如何驗證擴展?最佳做法是什麼?
我曾嘗試下一
$builder->add('avatar', 'file', array('required' => false, 'data_class' => null, 'mimeType' => 'image/jpeg'));
但它返回一個錯誤。順便說一下,我想只接受.png和.jpeg文件。
謝謝
你嘗試在你的檔案實體申報特定的驗證? – scoolnico
實體是用戶,我不保存文件完全在分貝。我保存文件名,然後從數據庫中獲取該名稱。 –