Kullanıcı ve profil durumu arasında çoktan çoğa ilişkisi olan 2 form var. Her şey çalışıyor ama aşağıdaki kodla açısal bir json nesnesi kullanarak bir koleksiyon mesaj gönderemezsiniz: olduğu gibi 200 HTTP Status ile bir tepki üretir ancak kullanıcılar ve profilestatuses arasında hiçbir ilişki aşağıdaFOSRestBundle üzerinden bir koleksiyon gönderme RESTful API çalışmıyor
/*
* Update Status
*/
$scope.updateProfilestatus = function() {
var user = [];
user.push($scope.user.id);
var status =
{
body: $scope.status,
enabled: 1,
user: user
};
alert('Tests');
console.log(status);
TGWebService.profilestatuses.getAll.post(status).then(function (result) {
console.log(result);
alert("New Status Created");
});
};
sınıflarını kullanma veritabanında oluşturuldu. Muhtemelen kullanıcıyı ayrıştırabilir ve nesneleri sıraya dizebilir ve programlı olarak ekleyebilirim ama sihirli bir mermi çözümü olmasını umuyorum. koleksiyonları desteklemek için
Ek Kodu: my ProfileStatuses.php içinde kodunun değiştirilmesi
ProfileStatusesType.php
class ProfileStatusesType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('body')
->add('created',
'datetime', array('widget' => 'single_text', 'date_format' => 'YYYY-MM-DD hh:mm:ss'))
->add('updated',
'datetime', array('widget' => 'single_text', 'date_format' => 'YYYY-MM-DD hh:mm:ss'))
->add('enabled')
->add('user')
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'TeamGraduate\APIBundle\Entity\ProfileStatuses'
));
}
/**
* @return string
*/
public function getName()
{
return 'teamgraduate_apibundle_profilestatuses';
}
}
users.php
class UsersType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('firstName')
->add('lastName')
->add('birthdate',
'datetime', array('widget' => 'single_text', 'date_format' => 'YYYY-MM-DD'))
->add('created',
'datetime', array('widget' => 'single_text', 'date_format' => 'YYYY-MM-DD hh:mm:ss'))
->add('updated',
'datetime', array('widget' => 'single_text', 'date_format' => 'YYYY-MM-DD hh:mm:ss'))
->add('profileStatus')
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'TeamGraduate\APIBundle\Entity\Users'
));
}
/**
* @return string
*/
public function getName()
{
return 'teamgraduate_apibundle_users';
}
}
altına aşağıdaki 400 HTTP durum hatası üretir
->add('user',
'collection',
array(
'type'=> new UsersType(),
'prototype'=>true,
'allow_add'=>true,
'allow_delete'=>true,
'options'=>array(
)
)
)
400 Hatası Yanıtı
{
"code": 400,
"message": "Validation Failed",
"errors": {
"errors": ["This value is not valid."],
"children": {
"body": {},
"created": {},
"updated": {},
"enabled": {},
"user": {
"children": [{
"children": {
"firstName": {},
"middleName": {},
"lastName": {},
"birthdate": {},
"postalAddress": {},
"physicalAddress": {},
"idPassportNumber": {},
"telephone": {},
"mobile": {},
"institutionName": {},
"created": {},
"updated": {},
"apiKey": {},
"grade": {},
"institutionUser": {},
"gender": {},
"location": {},
"profileStatus": {},
"view": {},
"milestone": {},
"reportCard": {},
"device": {},
"badge": {},
"followerUser": {},
"inspirationalQuote": {}
}
}
]
},
"cap": {}
}
}
}