sudeep/formparse

Laravel 的简单表单解析和管理工具

dev-master 2019-09-25 05:20 UTC

This package is auto-updated.

Last update: 2019-12-25 07:08:59 UTC


README

使用 JavaScript 处理 Ajax 表单请求的 Laravel 扩展包。

安装

  1. 通过 Composer [ composer require sudeep/formparse ]
  2. 在您的 composer.json 中添加 "require" : { "sudeep/formparse": "dev-master" } 并运行 [ composer update ]

使用方法

  1. 在 config/app.php 文件的 'providers' 数组中添加 Sudeep\FormParser\FormServiceProvider::class。

  2. 在 CLI 中运行 [ php artisan vendor:publish --provider=FormServiceProvider ]。这将保存 JS 文件到您的 public/assets 文件夹。

  3. 接下来,您可以在任何需要的地方创建自己的 trait。或者,您可以直接在主控制器中使用它。只需在您的 app\http\controllers\Controller.php 中添加 [ use Sudeep\FormParser\FormParse;]。

  4. 将 form.js 链接到 blade 文件

  5. 在调用 ajax 函数之后。

    调用 getData(formObject) 函数。它需要一个表单对象作为参数。

    调用 getErrors(response) 函数来显示来自 Laravel 的错误。

     *for this you have to keep same value of id attr. as that of name attr.
             [ input type='text' name='address' id='address' ]
    
     *to show error you have to keep class name with (error-) prepended in same value of name attr.
             [ span class='error-address']
    
            $(document).on('submit','.form-class', function(e){
                    e.preventDefault();
                    var data = getData($(this))
                    $.ajax({
                        method: "POST",
                        url:  '/your/url/to/post,
                        data: { data: data },
                    }).done(function( res ) {
                        if(res == "ok"){
                            var url = "/url/to/redirect";
                        setTimeout($(location).attr('href', url),3000); 
                        }
                    }).fail( function(res){
                        //this will fill last values in filed
                        values(data)
                        //this will show errors
                        getErrors(res)
                        })
                })
  1. 现在在您的控制器中。

    public function toDoSomething(Request $request){

    调用 getArray() 以获取结果数组

    $result = $this->getArray($request);
    

    调用 getObj() 以获取结果对象

     $result = $this->getObj($request);
    

----------------------------------- FOR VALIDATION -----------------------------------------------

创建验证规则并通过 withvalidate() 传递

    $this->withValidate($result, $rules);

如果您使用表单请求,通过带有结果类的类传递。

    $this->withValidate($result, new FormRequest());