소스 검색

Add field rule setting via array

Visman 4 년 전
부모
커밋
aa7b179e38
2개의 변경된 파일8개의 추가작업 그리고 5개의 파일을 삭제
  1. 7 4
      app/Core/Validator.php
  2. 1 1
      app/Models/Pages/Admin/Parser/BBCode.php

+ 7 - 4
app/Core/Validator.php

@@ -149,17 +149,20 @@ class Validator
     public function addRules(array $list): Validator
     public function addRules(array $list): Validator
     {
     {
         foreach ($list as $field => $raw) {
         foreach ($list as $field => $raw) {
+            $rules  = [];
             $suffix = null;
             $suffix = null;
+
             // правило для элементов массива
             // правило для элементов массива
             if (\strpos($field, '.') > 0) {
             if (\strpos($field, '.') > 0) {
                 list($field, $suffix) = \explode('.', $field, 2);
                 list($field, $suffix) = \explode('.', $field, 2);
             }
             }
 
 
-            $rules = [];
-            $raw   = \str_replace('\|', "\0", $raw);
+            if (! \is_array($raw)) {
+                $raw = \explode('|', $raw);
+            }
+
             // перебор правил для текущего поля
             // перебор правил для текущего поля
-            foreach (\explode('|', $raw) as $rule) {
-                $rule = \str_replace("\0", '|', $rule);
+            foreach ($raw as $rule) {
                 $vs   = \explode(':', $rule, 2);
                 $vs   = \explode(':', $rule, 2);
 
 
                 if (empty($this->validators[$vs[0]])) {
                 if (empty($this->validators[$vs[0]])) {

+ 1 - 1
app/Models/Pages/Admin/Parser/BBCode.php

@@ -298,7 +298,7 @@ class BBCode extends Parser
                     'other_attrs.*.format'      => 'string:trim|max:1024',
                     'other_attrs.*.format'      => 'string:trim|max:1024',
                     'other_attrs.*.body_format' => 'string:trim|max:1024',
                     'other_attrs.*.body_format' => 'string:trim|max:1024',
                     'other_attrs.*.text_only'   => 'required|integer|in:0,1',
                     'other_attrs.*.text_only'   => 'required|integer|in:0,1',
-                    'new_attr.name'             => 'string:trim|regex:%^(?:\|[a-z-]{2,15})$%',
+                    'new_attr.name'             => ['string:trim', 'regex:%^(?:|[a-z-]{2,15})$%'],
                     'new_attr.allowed'          => 'required|integer|in:0,1',
                     'new_attr.allowed'          => 'required|integer|in:0,1',
                     'new_attr.required'         => 'required|integer|in:0,1',
                     'new_attr.required'         => 'required|integer|in:0,1',
                     'new_attr.format'           => 'string:trim|max:1024',
                     'new_attr.format'           => 'string:trim|max:1024',