8000 reproduced Symfony Issue #9650 by li0n12 · Pull Request #617 · symfony/symfony-standard · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Nov 27, 2020. It is now read-only.

reproduced Symfony Issue #9650 #617

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions src/Acme/DemoBundle/Controller/TestController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace Acme\DemoBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Acme\DemoBundle\Form\TaskType;
use Acme\DemoBundle\Entity\Task;

class TestController extends Controller
{
public function indexAction()
{
$form = $this->createForm(new TaskType(), new Task()
, array('validation_groups' => array('validationgroup'),)
);
$form->add('save', 'submit');

$form->handleRequest($this->getRequest());

if($form->isValid()){
echo '<p>the form is valid...</p>';
}

return $this->render('AcmeDemoBundle:Test:taskform.html.twig', array(
'form' => $form->createView()
));
}
}
13 changes: 13 additions & 0 deletions src/Acme/DemoBundle/Entity/Category.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace Acme\DemoBundle\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Category
{
/**
* @Assert\Length(min=3, groups={"validationgroup"})
*/
public $name;
}
29 changes: 29 additions & 0 deletions src/Acme/DemoBundle/Entity/Task.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace Acme\DemoBundle\Entity;

use Symfony\Component\Validator\Constraints as Assert;

use Acme\DemoBundle\Entity\Category;

class Task
{
// ...

/**
* @Assert\Valid
*/
protected $category;

// ...

public function getCategory()
{
return $this->category;
}

public function setCategory(Category $category = null)
{
$this->category = $category;
}
}
28 changes: 28 additions & 0 deletions src/Acme/DemoBundle/Form/CategoryType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

namespace Acme\DemoBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class CategoryType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\DemoBundle\Entity\Category',
'validation_groups' => array('validationgroup')
));
}

public function getName()
{
return 'category';
}
}
29 changes: 29 additions & 0 deletions src/Acme/DemoBundle/Form/TaskType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace Acme\DemoBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

use Acme\DemoBundle\Form\CategoryType;

class TaskType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('category', new CategoryType());
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\DemoBundle\Entity\Task'
));
}

public function getName()
{
return 'task';
}
}
15 changes: 3 additions & 12 deletions src/Acme/DemoBundle/Resources/config/routing.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
_welcome:
pattern: /
defaults: { _controller: AcmeDemoBundle:Welcome:index }

_demo_secured:
resource: "@AcmeDemoBundle/Controller/SecuredController.php"
type: annotation

_demo:
resource: "@AcmeDemoBundle/Controller/DemoController.php"
type: annotation
prefix: /demo
_test:
pattern: /test
defaults: { _controller: AcmeDemoBundle:Test:index }
3 changes: 3 additions & 0 deletions src/Acme/DemoBundle/Resources/views/Test/taskform.html.twig
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<h3>Add task</h3>
<p>Category name: @Assert\Length(min=3, groups={"validationgroup"})</p>
{{ form(form) }}
0