Browse Source

fixed datetime serialization

develop
Robin Thoni 8 years ago
parent
commit
8e7b6327de
3 changed files with 33 additions and 3 deletions
  1. 1
    1
      src/Utils/DataAccess/LuDataAccess.php
  2. 7
    0
      src/Utils/Dbo/LuDbo.php
  3. 25
    2
      tests/DatabaseTest.php

+ 1
- 1
src/Utils/DataAccess/LuDataAccess.php View File

95
         }
95
         }
96
         $data = LuStringUtils::convertJsonString($string);
96
         $data = LuStringUtils::convertJsonString($string);
97
         
97
         
98
-        return call_user_func([static::$_dboArrayClass, 'jsonDeserialize'], $data);
98
+        return call_user_func([static::$_dboArrayClass, 'jsonDeserialize'], $data)->getArray();
99
     }
99
     }
100
 
100
 
101
     /**
101
     /**

+ 7
- 0
src/Utils/Dbo/LuDbo.php View File

2
 
2
 
3
 namespace Luticate\Utils\Dbo;
3
 namespace Luticate\Utils\Dbo;
4
 
4
 
5
+use Carbon\Carbon;
5
 use Luticate\Utils\Business\LuPropertyDocParser;
6
 use Luticate\Utils\Business\LuPropertyDocParser;
6
 use Luticate\Utils\Business\LuStringUtils;
7
 use Luticate\Utils\Business\LuStringUtils;
7
 
8
 
32
                     if ($v instanceof LuDbo) {
33
                     if ($v instanceof LuDbo) {
33
                         $array[$key] = $v->jsonSerialize();
34
                         $array[$key] = $v->jsonSerialize();
34
                     }
35
                     }
36
+                    else if ($v instanceof Carbon) {
37
+                        $array[$key] = $v->__toString();
38
+                    }
35
                     else {
39
                     else {
36
                         $array[$key] = $v;
40
                         $array[$key] = $v;
37
                     }
41
                     }
43
                 if ($value instanceof LuDbo) {
47
                 if ($value instanceof LuDbo) {
44
                     $json[$name] = $value->jsonSerialize();
48
                     $json[$name] = $value->jsonSerialize();
45
                 }
49
                 }
50
+                else if ($value instanceof Carbon) {
51
+                    $json[$name] = $value->__toString();
52
+                }
46
                 else {
53
                 else {
47
                     $json[$name] = $value;
54
                     $json[$name] = $value;
48
                 }
55
                 }

+ 25
- 2
tests/DatabaseTest.php View File

1
 <?php
1
 <?php
2
+use Carbon\Carbon;
2
 use Illuminate\Database\Query\Builder;
3
 use Illuminate\Database\Query\Builder;
3
 use Luticate\Utils\Controller\LuticateApplication;
4
 use Luticate\Utils\Controller\LuticateApplication;
4
 use Illuminate\Database\Capsule\Manager as Capsule;
5
 use Illuminate\Database\Capsule\Manager as Capsule;
31
      */
32
      */
32
     private $_someIntegerArray;
33
     private $_someIntegerArray;
33
 
34
 
35
+    /**
36
+     * @var $_createdAt Carbon
37
+     */
38
+    private $_createdAt;
39
+
34
     /**
40
     /**
35
      * @return int
41
      * @return int
36
      */
42
      */
78
     {
84
     {
79
         $this->_someIntegerArray = $someIntegerArray;
85
         $this->_someIntegerArray = $someIntegerArray;
80
     }
86
     }
87
+
88
+    /**
89
+     * @return Carbon
90
+     */
91
+    public function getCreatedAt()
92
+    {
93
+        return $this->_createdAt;
94
+    }
95
+
96
+    /**
97
+     * @param Carbon $createdAt
98
+     */
99
+    public function setCreatedAt($createdAt)
100
+    {
101
+        $this->_createdAt = $createdAt;
102
+    }
103
+
81
 }
104
 }
82
 
105
 
83
 class TestTableDboArray extends LuDbo
106
 class TestTableDboArray extends LuDbo
148
 //        ]];
171
 //        ]];
149
 //        $app = new LuticateApplication($config);
172
 //        $app = new LuticateApplication($config);
150
 //        $app->setupDatabases();
173
 //        $app->setupDatabases();
151
-//        
174
+//
152
 //        $dbo = new TestTableDbo();
175
 //        $dbo = new TestTableDbo();
153
 //        $dbo->setId(11);
176
 //        $dbo->setId(11);
154
 //        $dbo->setSomeIntegerArray('{}');
177
 //        $dbo->setSomeIntegerArray('{}');
157
 //        var_dump(TestTableDataAccess::getMultiple(function(Builder $q)
180
 //        var_dump(TestTableDataAccess::getMultiple(function(Builder $q)
158
 //        {
181
 //        {
159
 //            return $q->where("id", "=", 1);
182
 //            return $q->where("id", "=", 1);
160
-//        }));
183
+//        })[0]->jsonSerialize());
161
 //        var_dump(TestTableDataAccess::getSingleById(1));
184
 //        var_dump(TestTableDataAccess::getSingleById(1));
162
 //        var_dump(TestTableDataAccess::deleteMultiple(function($q)
185
 //        var_dump(TestTableDataAccess::deleteMultiple(function($q)
163
 //        {
186
 //        {

Loading…
Cancel
Save