In meinem Kunden Modell habe ich die folgenden zwei Funktionen, die Felder verarbeiten, die leer sind, wenn ein neuer Kunde erstellt:Einstellung leere Werte aus einer Lavarel Form aus dem Modell
public function setCustPstAttribute($custpst)
{
$this->attributes['CustPST'] = trim($custpst) == '' ? 0 : trim($custpst);
}
public function setCustSicAttribute($custsiccode){
$this->attributes['CustSicCode'] = trim($custsiccode) == '' ? 0 : trim($custsiccode);
}
Die Funktion setCustPstAttribute ($ custpst) funktioniert gut, Sie können den Wert 0 oben sehen. Auf die Funktion setCustSicAttribute ($ custsiccode) wird überhaupt nicht zugegriffen/sie wird nicht eingegeben. Ich habe versucht, die Funktion zu beenden, und auf sie wird nie zugegriffen. Der einzige Unterschied ist der Variablentyp, $ custpst ist varchar und $ custsiccode ist int. Die sql-Einfügung sucht nach einer Ganzzahl, erhält aber eine leere Zeichenfolge.
QueryException {#363 ▼
#sql: "insert into `customers` (`CustCompanyName`, `CustSicCode`, `FOBLocation`, `CustPST`, `CustGenerator`, `CustStatus`, `CustLastUpdate`, `CustStartDate`) values (?, ?, ?, ?, ?, ?, ?, ?)"
#bindings: array:8 [▼
0 => "Test"
1 => ""
2 => "Selkirk"
3 => 0
4 => ""
5 => "Active"
6 => "2017-02-10 14:12:48"
7 => "2017-02-10 14:12:48"
]
#message: "SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: '' for column 'CustSicCode' at row 1 (SQL: insert into `customers` (`CustCompanyName`, `CustSicCode`, `FOBLocation`, `CustPST`, `CustGenerator`, `CustStatus`, `CustLastUpdate`, `CustStartDate`) values (fgfgf, , Selkirk, 0, , Active, 2017-02-10 14:12:48, 2017-02-10 14:12:48))"
#code: "22007"
#file: "/var/www/laravel/vendor/laravel/framework/src/Illuminate/Database/Connection.php"
#line: 770
-previous: PDOException {#364 ▶}
+errorInfo: array:3 [▼
0 => "22007"
1 => 1366
2 => "Incorrect integer value: '' for column 'CustSicCode' at row 1"
]
+"previous": PDOException {#364 ▶}
-trace: {▶}
}
Dank, Julian