2016-04-28 6 views
0

Я прочитал несколько решений для этой ошибки, но это не работает, я не знаю точно, где это проблема, потому что другой запрос прибудет работает мой formType выглядит следующим образом:Примечания: Массив для преобразования строки Symfony2

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('image', null, array('property_path' => 'file')) 
     ->add('tags', null, array('mapped' => false)) 
     ->add('machinetags', null, array('mapped' => false)); 
} 

и функции контроллера следующим образом:

 /** 
* @ApiDoc(description="Associate photo with tags.") 
* 
* @ParamConverter("photo", class="TestTaskPhotosBundle:Photo") 
* 
* @Rest\Post("/photos/{id}/tags") 
* @Rest\RequestParam(name="tags", requirements=".+", nullable=false, map=true, description="Tags that associates photo.") 
* @Rest\View() 
*/ 
public function postTagsToPhotoAction(Photo $photo, array $tags) 
{ 
    $em = $this->getDoctrine()->getManager(); 

    //TODO: add validation and maybe form 

    if ($tags) { 
     $tags = $em->getRepository('TestTaskTagsBundle:Tag')->findOrCreateByTitles($tags); 
    } 

    foreach ($tags as $tag) { 
     $photo->addTag($tag); 
    } 

    $em->persist($photo); 
    $em->flush(); 

    return array('photo' => $photo); 
} 

ответ

1

решена, проблема была в функции cotroller, раствор следующим образом:

 public function postMachinetagsToPhotoAction($id, array $machinetags) 
{ 
    $em = $this->getDoctrine()->getManager(); 

    //TODO: add validation and maybe form 
    $photo = $em->getRepository('TestTaskPhotosBundle:Photo')->find($id); 
    if ($machinetags) { 
     $machinetags = $em->getRepository('TestTaskMachineTagsBundle:MachineTag')->findOrCreateByTitles($machinetags); 
    } 

    foreach ($machinetags as $machinetag) { 
     $photo->addMachineTag($machinetag); 
    } 

    $em->persist($photo); 
    $em->flush(); 

    return array('photo' => $photo); 
} 
+1

Здравствуйте, @Nada, пожалуйста, добавьте свой код в то, что вы изменили, чтобы решить проблему, чтобы другие могли ссылаться на ваше решение и могли получить помощь. –

+0

Okey с удовольствием .. сделано – Nada