symfony2从表单中获取属性值

时间:2014-10-02 14:39:32

标签: symfony twig

我有一个名为Config的symfony实体

class Config
{
/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="key_name", type="string", length=255)
 */
private $keyName;

/**
 * @var string
 *
 * @ORM\Column(name="key_value", type="text", nullable=true)
 */
private $keyValue;


/**
 * @var string
 *
 * @ORM\Column(name="key_type", type="string", length=255)
 */
private $keyType;

/**
 * @var string
 *
 * @ORM\Column(name="key_tab", type="string", length=255)
 */
private $keyTab;

控制器:

class ConfigController extends Controller
{

/**
 * Lists all Config entities.
 *
 */
public function indexAction()
{
    $em = $this->getDoctrine()->getManager();

    $entities = $em->getRepository('MyBundle:Config')->findAll();

    $configCollection = array('configs'=>$entities);

    $collection = $this->createForm(new ConfigsType, $configCollection);

    return $this->render('MyBundle:Config:index.html.twig', array(
        'edit_form' => $collection->createView(),

    ));
}

观点:

{% macro config_row(elem) %}
<div class="form-group">
{{ form_label(elem.keyValue, 'fff', { 'label_attr': { 'class': 'col-md-3 control-label' }}) }}
{# elem.keyName|humanize #}
<div class="col-md-4">
     {{ form_widget(elem.keyValue, {'attr': { 'class': 'form-control input-large' }}) }}
     {{ form_errors(elem.keyValue) }}

</div>
</div>
{% endmacro %}

<form action="{{ path('my_config') }}" method="post" {{ form_enctype(edit_form) }} >
 {% for conf in edit_form.configs %} 
      {{ _self.config_row(conf) }} 
    {% endfor %}
 </div>
 {{ form_rest(edit_form) }}
 </form>

我需要的是每个配置行我可以在config_row模板中获取属性值,以根据其值自定义html行结构

有什么想法吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

如果我理解你是正确的,你想要检索实体Config实例的每个属性的值,对吗?

如果是这样,可以通过以下方式访问属性:

{{ conf.vars.data.id }}
{{ conf.vars.data.keyName }}
{{ conf.vars.data.keyValue }}