У меня проблема с одной из моих форм. У меня есть документ "Ресурс" связан с 3 другими документами:Symfony2 & MongoDB: FormType документа со ссылками
- Теги (ReferenceMany)
- Категория (ReferenceOne)
- Data Repository (ReferenceOne)
Вот определение моего документ:
class Resource {
/**
* @MongoDB\Id
*/
private $id;
/**
* @MongoDB\String
*/
private $name;
/**
* @MongoDB\String
*/
private $description;
/**
* @MongoDB\ReferenceMany(targetDocument="Tag")
*/
protected $tags;
/**
* @MongoDB\ReferenceOne(targetDocument="Category")
*/
private $category;
/**
* @MongoDB\ReferenceOne(targetDocument="DataRepository")
*/
private $dataRepository;
/**
* @MongoDB\file
*/
private $logo;
/**
* @MongoDB\Boolean
*/
private $available;
А вот formType для моего документа «Ресурс»:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
$builder->add('description');
$builder->add('logo', 'file');
$builder->add('available', 'checkbox');
$builder->add('category', 'document', array(
'class' => 'AppBundle:Category'
));
$builder->add('tags', 'document', array(
'class' => 'AppBundle:Tag',
'multiple' => 'true'
));
$builder->add('dataRepository', "document", array(
'class' => 'PortailCatalogBundle:DataRepository'
));
}
Сгенерированная форма совершенна, но когда я ее подаю, она, похоже, не увлажняет мое сущность как исключенное. Вот запрос:
["request"]=>
object(Symfony\Component\HttpFoundation\ParameterBag)#7 (1) {
["parameters":protected]=>
array(1) {
["resource"]=>
array(7) {
["name"]=>
string(14) "Ressource N°1"
["description"]=>
string(28) "Juste un test parmi d'autres"
["available"]=>
string(1) "1"
["category"]=>
string(24) "551c02b5a246cb287c09bcde"
["tags"]=>
array(2) {
[0]=>
string(24) "551c02b5a246cb287c09bcdc"
[1]=>
string(24) "551d0ac2a246cbe40809bc97"
}
["dataRepository"]=>
string(24) "551d650aa246cb700e09bc9d"
["_token"]=>
string(40) "4adfcc295b2305c784347311d3bbad55c260c6ed"
}
}
}
Все эти ObjectIds являются правильными, но когда представляется, форма генерирует ошибки для этих 3-х документов с ошибкой «Это значение не является допустимым»
Я нашел запросы, сделанные сразу после подачи заявки:
db.category.find({ "_id": ObjectId("551e66a2a246cba51909bc9c") });
db.tag.find({ "_id": ObjectId("551e66a2a246cba51909bc9d") });
db.dataRepository.find({ "_id": ObjectId("551e66a2a246cba51909bc9e") });
Как вы можете видеть, объекты не совпадают. Мне кажется, что я испортил часть определения formType.
Я не нашел документации для этого вида формы в DoctrineMongoDBBundle ... Ссылка на любую идею или документацию?
спасибо.