ozanmuyes/paraveley

根据Laravel的FormRequest自动生成Parsley规则。

v0.2.0 2015-08-05 02:01 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:05:18 UTC


README

根据Laravel 5的FormRequest自动生成Parsley规则。

要求

  • Laravel 5及以后版本
  • Parsley 2

安装

您可以通过以下选项之一来安装Paraveley:

  • 将以下行添加到您的composer.json文件中
    "ozanmuyes/paraveley": "0.1.*"
    然后在您的CLI上运行composer update命令。

  • 在您的CLI上运行composer require "ozanmuyes/paraveley:0.1.*"命令。

用法

namespace声明下方添加Ozanmuyes\Paraveley\Traits\FormRequestExtractor;,并在您的Request类中使用use FormRequestExtractor;特性。

要获取要传递给视图的Parsley规则数组,只需调用$request->parsleyRules()函数。

有关更多信息,请参阅示例部分。

示例

  1. CreateArticleFormRequest.php文件

    <?php
    
    namespace App\Http\Requests;
    
    use App\Http\Requests\Request;
    use Ozanmuyes\Paraveley\Traits\FormRequestExtractor;
    
    class CreateArticleFormRequest extends Request
    {
        use FormRequestExtractor;
    
        /**
         * Determine if the user is authorized to make this request.
         *
         * @return bool
         */
        public function authorize()
        {
            return false;
        }
    
        /**
         * Get the validation rules that apply to the request.
         *
         * @return array
         */
        public function rules()
        {
            return [
                "title" => "required|min:3|max:64",
                "subtitle" => "min:3|max:128",
                "content" => "required"
            ];
        }
    }
  2. ArticlesController.php文件

    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    
    use App\Http\Requests;
    use App\Http\Controllers\Controller;
    use App\Article;
    use App\Http\Requests\CreateArticleFormRequest;
    
    class ArticlesController extends Controller
    {		
        /**
         * Show the form for creating a new resource.
         *
         * @return Response
         */
        public function create()
        {
            $parsleyRules = (new CreateArticleFormRequest())->parsleyRules();
    
    		/* 
    		 * $parsleyRules is an array which carries these values depending our 
    		 * CreateArticleFormRequest class' rules() function;
    		 *
    		 * array:3 [
    		 *  "title" => array:3 [
    		 *    "data-parsley-required" => "true"
    		 *    "data-parsley-minlength" => "3"
    		 *    "data-parsley-maxlength" => "64"
    		 *  ]
    		 *  "subtitle" => array:2 [
    		 *    "data-parsley-minlength" => "3"
    		 *    "data-parsley-maxlength" => "128"
    		 *  ]
    		 *  "content" => array:1 [
    		 *    "data-parsley-required" => "true"
    		 *  ]
    		 * ]
    		 */
    
            return view("create")->with("parsleyRules", $parsleyRules);
        }
    }
  3. create.blade.php文件

    • 如果您正在使用LaravelCollective/html包(我强烈推荐使用)

       {!! Form::text("title", null, ["class" => "form-control"] + $parsleyRules["title"]) !!}
    • 如果您尚未使用此包

       <input name="title" class="form-control" <?php foreach ($parsleyRules["title"] as $key => $value) { echo $key . "='" . $value . "' "; } ?>>

备注

以下Laravel 5规则尚未实现:

  • active_url
  • after
  • array
  • before
  • confirmed
  • date
  • exists
  • image
  • mimes
  • required_with
  • required_with_all
  • required_without
  • required_without_all
  • same
  • timezone
  • unique

有关这些规则的未来计划,请参阅路线图部分。

路线图

  • 将编写和完成测试。
  • 由于某些Laravel 5规则依赖于数据库(例如,existsunique),这些规则在客户端不适用。但其他尚未实现的规则将很快实现。请自由fork并创建pull request。

许可证

MIT许可证(MIT)

版权所有 © 2015 Ozan Müyesseroğlu

在此,任何人免费获得此软件及其相关文档副本(“软件”),在不限制条件的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许软件接收方以本许可条件进行操作

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是因合同、侵权或其他方式引起的,无论是源于、因涉及或与软件或软件的使用或其他方式有关。