当前位置: 首页>>代码示例>>PHP>>正文


PHP FormUtil::isEmpty方法代码示例

本文整理汇总了PHP中Symfony\Component\Form\Util\FormUtil::isEmpty方法的典型用法代码示例。如果您正苦于以下问题:PHP FormUtil::isEmpty方法的具体用法?PHP FormUtil::isEmpty怎么用?PHP FormUtil::isEmpty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Symfony\Component\Form\Util\FormUtil的用法示例。


在下文中一共展示了FormUtil::isEmpty方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: buildForm

 /**
  * {@inheritdoc}
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $choiceList = $this->createChoiceList($options);
     $builder->setAttribute('choice_list', $choiceList);
     if ($options['expanded']) {
         $builder->setDataMapper($options['multiple'] ? new CheckboxListMapper() : new RadioListMapper());
         // Initialize all choices before doing the index check below.
         // This helps in cases where index checks are optimized for non
         // initialized choice lists. For example, when using an SQL driver,
         // the index check would read in one SQL query and the initialization
         // requires another SQL query. When the initialization is done first,
         // one SQL query is sufficient.
         $choiceListView = $this->createChoiceListView($choiceList, $options);
         $builder->setAttribute('choice_list_view', $choiceListView);
         // Check if the choices already contain the empty value
         // Only add the placeholder option if this is not the case
         if (null !== $options['placeholder'] && 0 === count($choiceList->getChoicesForValues(array('')))) {
             $placeholderView = new ChoiceView(null, '', $options['placeholder']);
             // "placeholder" is a reserved name
             $this->addSubForm($builder, 'placeholder', $placeholderView, $options);
         }
         $this->addSubForms($builder, $choiceListView->preferredChoices, $options);
         $this->addSubForms($builder, $choiceListView->choices, $options);
         // Make sure that scalar, submitted values are converted to arrays
         // which can be submitted to the checkboxes/radio buttons
         $builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) {
             $form = $event->getForm();
             $data = $event->getData();
             if (null === $data) {
                 $emptyData = $form->getConfig()->getEmptyData();
                 if (false === FormUtil::isEmpty($emptyData) && array() !== $emptyData) {
                     $data = is_callable($emptyData) ? call_user_func($emptyData, $form, $data) : $emptyData;
                 }
             }
             // Convert the submitted data to a string, if scalar, before
             // casting it to an array
             if (!is_array($data)) {
                 $data = (array) (string) $data;
             }
             // A map from submitted values to integers
             $valueMap = array_flip($data);
             // Make a copy of the value map to determine whether any unknown
             // values were submitted
             $unknownValues = $valueMap;
             // Reconstruct the data as mapping from child names to values
             $data = array();
             foreach ($form as $child) {
                 $value = $child->getConfig()->getOption('value');
                 // Add the value to $data with the child's name as key
                 if (isset($valueMap[$value])) {
                     $data[$child->getName()] = $value;
                     unset($unknownValues[$value]);
                     continue;
                 }
             }
             // The empty value is always known, independent of whether a
             // field exists for it or not
             unset($unknownValues['']);
             // Throw exception if unknown values were submitted
             if (count($unknownValues) > 0) {
                 throw new TransformationFailedException(sprintf('The choices "%s" do not exist in the choice list.', implode('", "', array_keys($unknownValues))));
             }
             $event->setData($data);
         });
     }
     if ($options['multiple']) {
         // <select> tag with "multiple" option or list of checkbox inputs
         $builder->addViewTransformer(new ChoicesToValuesTransformer($choiceList));
     } else {
         // <select> tag without "multiple" option or list of radio inputs
         $builder->addViewTransformer(new ChoiceToValueTransformer($choiceList));
     }
     if ($options['multiple'] && $options['by_reference']) {
         // Make sure the collection created during the client->norm
         // transformation is merged back into the original collection
         $builder->addEventSubscriber(new MergeCollectionListener(true, true));
     }
 }
开发者ID:ayoah,项目名称:symfony,代码行数:81,代码来源:ChoiceType.php

示例2: isEmpty

 public function isEmpty()
 {
     foreach ($this->children as $child) {
         if (!$child->isEmpty()) {
             return false;
         }
     }
     return FormUtil::isEmpty($this->modelData) || 0 === count($this->modelData) || $this->modelData instanceof \Traversable && 0 === iterator_count($this->modelData);
 }
开发者ID:lovenunu,项目名称:miniphpy,代码行数:9,代码来源:sf2_form.min.php

示例3: isEmpty

 /**
  * {@inheritdoc}
  */
 public function isEmpty()
 {
     foreach ($this->children as $child) {
         if (!$child->isEmpty()) {
             return false;
         }
     }
     return FormUtil::isEmpty($this->modelData) || array() === $this->modelData;
 }
开发者ID:netvlies,项目名称:symfony,代码行数:12,代码来源:Form.php


注:本文中的Symfony\Component\Form\Util\FormUtil::isEmpty方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。