2017-11-05 1 views
2

사용자 제출 데이터에서 생성되어야하는 슬러그 필드를 추가하기 위해이 양식을 수정하고 있습니다.Symfony, 제출 된 양식에서 슬러그 생성

사용자 선택 카테고리 (이름) 및 내용에서 임의의 단어처럼

, 나는 또한 URL을 청소를 위해 Slugify을 사용하고 있습니다 :

어떤 생각을?

$u = $this->getUser(); 
$sl = new Slugify(); 
$task = new AdsList(); 
$task->setPostXpr(new \DateTime('+1 month')); 
$task->setSlug($ans); 
$task->setPostedBy($u); 
$form = $this->createFormBuilder($task) 
    ->add('title', TextType::class) 
    ->add('content', TextareaType::class) 
    ->add('category', EntityType::class, array(
     // query choices from CategoryAd.Name 
     'class' => 'AppBundle:CategoryAd', 
     'choice_label' => 'name', 
    )) 
    ->add('postXpr', DateType::class, array(
     'widget' => 'single_text', 
     // this is actually the default format for single_text 
     'format' => 'yyyy-MM-dd', 
     'label' => 'Post Expire', 
    )) 
    ->add('save', SubmitType::class, array('label' => 'Create Post')) 
     ->getForm(); 
+4

Doctrine 확장 기능을 사용하는 것이 좋습니다. https://symfony.com/doc/current/doctrine/common_extensions.html – JimL

답변

0

당신은 단지 슬러그 필드가 아닌 폼에 개체에 매핑 정보를 추가 한 다음 cocur을 사용/cocur

if ($form->isSubmitted() && $form->isValid()) { 
    $em = $this->getDoctrine()->getManager(); 
    $entity->setSlug($this->get('cocur_slugify')->slugify($entity->getName())); 
    $em->persist($entity); 
    $em->flush(); 
    return $this->redirectToRoute('my_route_to_redirect', array('slug' => $entity->getSlug())); 
     } 
을 사용

slugify 필요

또는 @Alexander Br으로 교리 확장을 사용할 수 있습니다. 게시 됨

관련 문제