ppi/form

本包最新版本(1.0)没有可用的许可证信息。

1.0 2014-07-03 14:39 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:00:39 UTC


README

创建元素

要创建元素,您需要访问该元素类型的相应方法。或者,您也可以使用底层的add()addElement(ElementInteface $element)方法。

<?php
$form = new Form();
$form->text('username');

$form->password('password');
$form->password('confirm_password');

$form->submit('submit_button', 'Click to Continue');

获取元素

在创建时获取元素

<?php
$form = new Form();
$usernameElement = $form->text('username');

在稍后日期获取元素

$form->text('username');
$usernameElement = $form->get('username');

创建元素并设置其属性

<?php
$form = new Form();

$form->text('username')
    ->attr('class', 'username-field')
    ->attr('id', 'username-field');

创建元素并设置其值

<?php
$form = new Form();
$form->text('username')->setValue($userEntity->getUsername());

渲染元素

每个元素对象都有一个__toString()方法别名render(),因此您可以直接echo对象来渲染它们

控制器代码

<?php
$form = new Form();
// ... add elements
return $this->render('....', compact('form'));
?>

模板代码

<div class="username-container">
<?= $form->getElement('username'); ?>
</div>

将数据绑定到您的表单中

当在您的实体上调用toArray()时,您将有一个名为username的数据键,它与添加的名为username的文本字段的名称相匹配。

<?php
$form = new Form();
$form->text('username');

$entity = new UserEntity($userHelper->getByID($userID));
$form->bind($entity->toArray());

创建自定义元素

只要您的元素实现了ElementInteface,您就可以将其添加到表单中。

<?php
$element = new CustomElement();
$element->setValue($someValue);
$element->attr('id', 'custom-element');

$form->addElement($element);

您的自定义元素的示例

<?php

use PPI\Form\Element\ElementInterface;

class CustomElement implements ElementInterface
{
    protected $type = 'CustomElement';
    
    // .. implement the methods in ElementInterface
    
}