Selaa lähdekoodia

SQL类型转NULL

Zhouzhendong 4 vuotta sitten
vanhempi
commit
d05b5af8d0

+ 4 - 2
app/Http/Controllers/TestController.php

@@ -165,7 +165,8 @@ class TestController extends Controller
             $values = "(";
             foreach ($menu->toArray() as $col=>$val){
                 $columns .= "{$col},";
-                $values .= "'{$val}',";
+                if ($col=='parent_id' && !$val) $values .= "null,";
+                else $values .= "'{$val}',";
             }
             $columns = mb_substr($columns,0,-1);
             $values = mb_substr($values,0,-1);
@@ -181,7 +182,8 @@ class TestController extends Controller
             $values = "(";
             foreach ($authority->toArray() as $col=>$val){
                 $columns .= "{$col},";
-                $values .= "'{$val}',";
+                if ($col=='parent_id' && !$val) $values .= "null,";
+                else $values .= "'{$val}',";
             }
             $columns = mb_substr($columns,0,-1);
             $values = mb_substr($values,0,-1);

+ 6 - 2
app/Observers/AuthorityObserver.php

@@ -20,7 +20,8 @@ class AuthorityObserver
         $values = "(";
         foreach ($authority->toArray() as $col=>$val){
             $columns .= "{$col},";
-            $values .= "'{$val}',";
+            if ($col=='parent_id' && !$val) $values .= "null,";
+            else $values .= "'{$val}',";
         }
         $columns = mb_substr($columns,0,-1);
         $values = mb_substr($values,0,-1);
@@ -38,7 +39,10 @@ class AuthorityObserver
     {
         if (env('APP_ENV')!='production')return;
         $txt = "UPDATE authorities SET ";
-        foreach ($authority->toArray() as $col=>$val)$txt .= "{$col}='{$val}',";
+        foreach ($authority->toArray() as $col=>$val){
+            if ($col=='parent_id' && !$val) $txt .= "{$col}=null,";
+            else $txt .= "{$col}='{$val}',";
+        }
         $txt = mb_substr($txt,0,-1);
         $txt .= " WHERE id = {$authority->id};\r\n";
         $this->write($txt);

+ 6 - 2
app/Observers/MenuObserver.php

@@ -20,7 +20,8 @@ class MenuObserver
         $values = "(";
         foreach ($menu->toArray() as $col=>$val){
             $columns .= "{$col},";
-            $values .= "'{$val}',";
+            if ($col=='parent_id' && !$val) $values .= "null,";
+            else $values .= "'{$val}',";
         }
         $columns = mb_substr($columns,0,-1);
         $values = mb_substr($values,0,-1);
@@ -38,7 +39,10 @@ class MenuObserver
     {
         if (env('APP_ENV')!='production')return;
         $txt = "UPDATE menus SET ";
-        foreach ($menu->toArray() as $col=>$val)$txt .= "{$col}='{$val}',";
+        foreach ($menu->toArray() as $col=>$val){
+            if ($col=='parent_id' && !$val) $txt .= "{$col}=null,";
+            else $txt .= "{$col}='{$val}',";
+        }
         $txt = mb_substr($txt,0,-1);
         $txt .= " WHERE id = {$menu->id};\r\n";
         $this->write($txt);