本文整理汇总了PHP中Symfony\Component\Form\FormBuilderInterface::setDataLocked方法的典型用法代码示例。如果您正苦于以下问题:PHP FormBuilderInterface::setDataLocked方法的具体用法?PHP FormBuilderInterface::setDataLocked怎么用?PHP FormBuilderInterface::setDataLocked使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\Form\FormBuilderInterface
的用法示例。
在下文中一共展示了FormBuilderInterface::setDataLocked方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: buildForm
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
if (isset($options['include'])) {
$this->include = $options['include'];
}
if (isset($options['multiple'])) {
$this->multiple = $options['multiple'];
}
if ($this->include && !$this->multiple) {
throw new \LogicException("You can't include an object in a single selection!");
}
$builderName = ucfirst($builder->getName());
// TODO: Use a more accurate placeholder
$placeholder = $this->multiple ? 'brad, kierra, ...' : null;
if ($this->include) {
$exclude = $this->include->getType() . ':' . $this->include->getId();
} else {
$exclude = null;
}
// Model IDs that will be manipulated by javascript
$builder->add('ids', 'hidden', array('attr' => array('class' => 'select2-compatible', 'data-exclude' => $exclude, 'data-label' => $builderName, 'data-multiple' => $this->multiple, 'data-required' => $options['required'])));
// Model name inputs that will be edited by users if javascript is
// disabled
foreach ($this->types as $type) {
$pluralType = $this->multiple ? Inflector::pluralize($type) : $type;
$label = count($this->types) > 1 ? "{$builderName} {$pluralType}" : $builderName;
$builder->add($builder->create($type, 'text', array('attr' => array('class' => 'model-select', 'data-type' => $type, 'placeholder' => $placeholder), 'label' => $label, 'required' => false)));
}
if ($this->multiple) {
$transformer = new MultipleAdvancedModelTransformer($this->types);
if ($this->include) {
$transformer->addInclude($this->include);
}
} else {
$transformer = new SingleAdvancedModelTransformer($this->types);
}
$builder->addViewTransformer($transformer);
// Make sure we can change the values provided by the user
$builder->setDataLocked(false);
}