encodez/superform

Phalcon 框架的高级表单处理,灵感来源于 Laravel 和 Zend 表单

dev-master 2015-05-11 05:53 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:07:25 UTC


README

简单创建和验证 Phalcon 2 表单的方法,灵感来源于 Laravel 请求

请分支此仓库并帮助改进。

该模块处于开发阶段。这是一份快速参考。模块和文档仍需改进。我将随着时间添加更多笔记。

示例

use Encodez\Superform\Form;
class ClientForm extends Form
{
    public function __construct()
    {
        $this->setMethod(Form::METHOD_POST);
        parent::__construct();
    }

    function getFields()
    {
        return [
            'client_name' => [ 'text', 'Client Name', 'class:form-control'],
            'email' => ['email', 'EMail', 'class:form-control'],
            'building_no' => ['numeric', 'Building No', 'class:form-control'],
            'location_name' => [ 'text', 'Location Name', 'class:form-control location'],
        ];
    }

    function getRules()
    {
        return [
            'client_name' => 'required|length:5,10',
            'building_no' => 'required',
            'email' => 'required|email',
            'location_name' => 'required',
        ];
    }

    /* TODO: Add sanitizers*/
    function getFilters()
    {
        return [
            'client_name' => 'trim'
        ];
    }

    function getCustomMessages()
    {
        return [
            'client_name:required' => 'Client name is required',
            'client_name:length:5,10' => 'Client name must be atleast 5 characters and must not exceed 10',
            'client_name:string' => 'Client name contains invalid characters',
        ];
    }
}