Skip to content

Commit

Permalink
[MOD] update laydate form type and update useage
Browse files Browse the repository at this point in the history
  • Loading branch information
lcp0578 committed Oct 7, 2017
1 parent f390d8a commit 8499a39
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 4 deletions.
39 changes: 36 additions & 3 deletions Form/Type/LayDateType.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,49 @@
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormView;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormBuilderInterface;

class LayDateType extends AbstractType
class LayDateType extends AbstractType
{

public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'width' => '100%',
'height' => '240px'
'placeholder' => ' - ',
'range' => 0,
'type' => ''
));
}

/**
*
* {@inheritdoc}
*
*/
public function buildView(FormView $view, FormInterface $form, array $options)
{
// For Symfony 2.0:
// $view->set('base_path', $form->getAttribute('base_path'));

// For Symfony 2.1 and higher:
$view->vars['placeholder'] = $options['placeholder'];
$view->vars['range'] = $options['range'];
$view->vars['type'] = $options['type'];
}

/**
*
* {@inheritdoc}
*
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->setAttribute('placeholder', $options['placeholder'])
->setAttribute('range', $options['range'])
->setAttribute('type', $options['type']);
}

public function getParent()
{
Expand Down
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,33 @@ in the `app/AppKernel.php` file of your project:
### Step 3: Configuration

# config.yml
# Twig Configuration
twig:
...
form_themes:
- 'KitFormBundle:Form:kit_form_theme.html.twig'

## Usage
- LayDateType
引入laydate.js 或者 使用 layui 框架。

<script src="{{ asset('public/laydate/laydate.js') }}"></script>

buildForm进行使用:

$builder-->add('start_time', LayDateType::class, [
'label' => '开始时间',
'type' => 'time'
])->add('end_time', LayDateType::class, [
'label' => '结束时间',
'type' => 'time'
]);

| type可选值 | 名称 | 用途 |
| :---: | :---:| :---: |
| year | 年选择器 | 只提供年列表选择 |
| month | 年月选择器 | 只提供年、月选择 |
| date | 日期选择器 | 可选择:年、月、日。type默认值,一般可不填 |
| time | 时间选择器 | 只提供时、分、秒选择 |
| datetime | 日期时间选择器 | 可选择:年、月、日、时、分、秒 |
PS: 详细配置请阅读[layDate官方文档](http://www.layui.com/laydate/)
5 changes: 4 additions & 1 deletion Resources/views/Form/kit_form_theme.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@
{{ form_widget(form) }}
<script>
laydate.render({
elem: {{ '#' ~ form.id }} //指定元素
elem: "{{ '#' ~ form.vars.id }}", //指定元素
value: "{{ form.vars.value}}",
type: "{{ form.vars.type }}",
range: {{ form.vars.range }}
});
</script>
{%- endblock -%}

0 comments on commit 8499a39

Please sign in to comment.