Я хочу создать приложение, которое может передавать некоторые данные из внешнего интерфейса Angular в бэкэнд Symfony через RESTful API. В этот момент все работает хорошо, но сейчас у меня возникли некоторые проблемы. Я использую FOSRestBundle и JMSSerializer.
Когда я пытаюсь создать новую сущность, я получаю эту ошибку:
«Возникла исключительная ситуация при выполнении кампании INSERT INTO (имя,
ветвь) VALUES (?,?) ‘с параметрами [null, null]: SQLSTATE [23000]:
Нарушение ограничения целостности: 1048 «Имя столбца не может быть пустым»
Мой код Symfony
public function createCampaignAction(Request $request)
{
$campaign = new Campaign();
$form = $this->createForm(new CampaignType(), $campaign);
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($campaign);
$em->flush();
return ['status','OK'];
}
return ['status' => $form];
}
Тип кампании
class CampaignType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name')
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'XXX\XXX\Entity\Campaign'
));
}
/**
* @return string
*/
public function getName()
{
return 'campaign';
}
}
И угловой
$scope.createCampaign = function () {
requestData = {"campaign": {name: "itWorks"}};
$http.post("/api/add-campaign", requestData, {
headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
}).success(function (responseData) {
console.log(responseData);
}).error(function(responseData){
console.log(responseData);
});
};
Похоже, данные не были получены, как это исправить?
Задача ещё не решена.
Других решений пока нет …