Ok проблема с привязкой решена (ошибка синтаксиса enctype): я дам вам код, который я использую.может быть, это поможет ...
У меня есть Галерея Сущность
class Gallery
{
protected $id;
protected $name;
protected $description;
private $urlName;
public $files; // the array which will contain the array of Uploadedfiles
// GETTERS & SETTERS ...
public function getFiles() {
return $this->files;
}
public function setFiles(array $files) {
$this->files = $files;
}
public function __construct() {
$files = array();
}
}
У меня есть форма класс, который генерирует форму
class Create extends AbstractType {
public function buildForm(FormBuilder $builder, array $options) {
$builder->add('name','text',array(
"label" => "Name",
"required" => TRUE,
));
$builder->add('description','textarea',array(
"label" => "Description",
"required" => FALSE,
));
$builder->add('files','file',array(
"label" => "Fichiers",
"required" => FALSE,
"attr" => array(
"accept" => "image/*",
"multiple" => "multiple",
)
));
}
}
Теперь в контроллере
<code>class GalleryController extends Controller
{
public function createAction() {
$gallery = new Gallery();
$form = $this->createForm(new Create(), $gallery);
// Altering the input field name attribute
$formView = $form->createView();
$formView->getChild('files')->set('full_name', 'create[files][]');
$request = $this->getRequest();
if($request->getMethod() == "POST")
{
$form->bindRequest($request);
// print "<pre>".print_r($gallery->getFiles(),1)."
"; if ($ form-> isValid ()) {// Делайте что хотите со своими файлами $ this-> get('gallery_manager') -> save ($ gallery); вернуть $ this-> redirect ($ this-> generateUrl ("_ gallery_overview"));}} вернуть $ this-> render ("GalleryBundle: Admin: create.html.twig ", array (" form "=> $ formView));}}
Надеюсь, это поможет ...
Примечание: если кто-то знает лучший способ изменить это значение** атрибут name, возможно, в классе FormView или объявив новый тип поля, не стесняйтесь показать нам ваш метод ...