Просмотр исходного кода

member - campo email e telefono non richiesti se minorenne / campi genitori richiesti se minorenne

ferrari 3 месяцев назад
Родитель
Сommit
735990f7c4
2 измененных файлов с 41 добавлено и 24 удалено
  1. 24 16
      app/Http/Livewire/Member.php
  2. 17 8
      routes/web.php

+ 24 - 16
app/Http/Livewire/Member.php

@@ -159,8 +159,8 @@ class Member extends Component
     protected $rules = [
         'first_name' => 'required',
         'last_name' => 'required',
-        'email' => 'required',
-        'phone' => 'required',
+        // 'email' => 'required',
+        // 'phone' => 'required',
         'birth_date' => 'before_or_equal:today'
     ];
 
@@ -830,14 +830,15 @@ class Member extends Component
         $rules = [
             'first_name' => 'required',
             'last_name' => 'required',
-            'email' => 'required',
-            'phone' => 'required',
             'birth_nation_id' => 'required',
+            // 'email' => 'required',
+            // 'phone' => 'required',
             'address' => 'required',
             'zip_code' => 'required',
             'nation_id' => 'required',
             'birth_date' => 'before_or_equal:today',
-            'gender' => 'required'
+            'gender' => 'required',
+            'under18' => 'present|in:0,1',
         ];
 
         if ($this->isBirthItaly) {
@@ -890,14 +891,17 @@ class Member extends Component
             $rules['mother_name'] = 'required_without:father_name';
             $rules['mother_email'] = 'required_without:father_email|email';
             $rules['mother_fiscal_code'] = 'required_without:father_fiscal_code';
+        } else {
+            $rules['email'] = 'required';
+            $rules['phone'] = 'required';
         }
 
         
         $std_rules = $rules;
-        $rules = [
-            'first_name' => 'required',
-            'last_name' => 'required'
-        ];
+        // $rules = [
+        //     'first_name' => 'required',
+        //     'last_name' => 'required'
+        // ];
 
         try {
             $this->validate($rules);
@@ -1209,13 +1213,14 @@ class Member extends Component
         $rules = [
             'first_name' => 'required',
             'last_name' => 'required',
-            'email' => 'required',
-            'phone' => 'required',
+            // 'email' => 'required',
+            // 'phone' => 'required',
             'birth_nation_id' => 'required',
             'address' => 'required',
             'zip_code' => 'required',
             'nation_id' => 'required',
-            'birth_date' => 'before_or_equal:today'
+            'birth_date' => 'before_or_equal:today',
+            'under18' => 'present|in:0,1',
         ];
 
         if ($this->isBirthItaly) {
@@ -1261,14 +1266,17 @@ class Member extends Component
             $rules['mother_name'] = 'required_without:father_name';
             $rules['mother_email'] = 'required_without:father_email|email';
             $rules['mother_fiscal_code'] = 'required_without:father_fiscal_code';
+        } else {
+            $rules['email'] = 'required';
+            $rules['phone'] = 'required';
         }
 
         
         $std_rules = $rules;
-        $rules = [
-            'first_name' => 'required',
-            'last_name' => 'required'
-        ];
+        // $rules = [
+        //     'first_name' => 'required',
+        //     'last_name' => 'required'
+        // ];
 
         try {
             $this->validate($rules);

+ 17 - 8
routes/web.php

@@ -212,15 +212,24 @@ Route::get('/nations', function () {
 });
 
 Route::get('/provinces/{nation_id}', function ($nation_id) {
-    if (isset($_GET["q"]))
-        $datas = \App\Models\Province::where('nation_id', $nation_id)->where('name', 'like', $_GET["q"] . '%')->orderBy('name')->get();
-    else
-        $datas = \App\Models\Province::where('nation_id', $nation_id)->orderBy('name')->get();
-    $data = array();
-    foreach ($datas as $d) {
-        $data[] = array("id" => $d->id, "text" => $d->name);
+    $q = request('q');
+
+    $query = \App\Models\Province::where('nation_id', $nation_id);
+    if ($q !== null && $q !== '') {
+        $query->where('name', 'like', $q.'%');
     }
-    return array("results" => $data);
+
+    $datas = $query->orderBy('name')->get(['id','name']);
+
+    $results = $datas->map(function ($d) {
+        $name = $d->name;
+        $name = mb_convert_encoding($name, 'UTF-8', 'UTF-8, ISO-8859-1, Windows-1252');
+        $name = iconv('UTF-8', 'UTF-8//IGNORE', $name);
+
+        return ['id' => $d->id, 'text' => $name];
+    })->all();
+
+    return response()->json(['results' => $results], 200, [], JSON_UNESCAPED_UNICODE);
 });
 
 Route::get('/cities/{province_id}', function ($province_id) {