2016-09-09 3 views
0

Ich habe folgenden Code in SilversSilvers konnte nicht Datensatz aktualisieren

<?php 

$product= Product::get()->filter("ProductCode", $UniqueCode)->First(); 
if($product){ 
    $product->Stock = "250"; 
    $product->Name = "Abcd 123"; 
    $product->write(); 
    echo "New Stock = ".$product->Stock; //this prints the OLD value not the NEW one. Nor database is updated. 
} 
?> 

Update: Wenn ich $product->Name = "Abcd 123";, die Name' field is getting updated, but not the Stock`

Das hat nicht funktioniert. Das Feld Stock der Tabelle Product wird nicht aktualisiert. Kann mir jemand sagen, wo ich falsch gelaufen bin?

+2

Vorwände liefern weitere Informationen - legen Sie einen 'Debug :: dump ($ Produkt);' oder sogar 'Debug :: Show ($ UniqueCode);' in den Code zu analysieren. – munomono

+0

Sie sind absolut sicher, dass Sie ein $ Produkt von der Abfrage erhalten? Probieren Sie nach der Abfrage ein 'var_dump ($ product)' oder 'echo $ product-> ID' aus, oder verwenden Sie ein geeignetes Tool wie xdebug, um Ihren Code zu debuggen. – wmk

+0

@wmk, ja das '$ product' gibt den Datensatz – WatsMyName

Antwort

0

Ich habe das Problem behoben. Für jemanden, der diesen Thread mit dem gleichen Problem in Zukunft verstärkt.

Eigentlich Stock Feld ist Integer und ich lieferte Zeichenfolge Wert. Sie müssen die Zeichenfolge in eine Ganzzahl konvertieren, bevor Sie sie an das Objekt übergeben. Zum Beispiel:

$updatedvalue = "250"; 
$updatedvalue = (int)$updatedvalue; 
+0

Sie sollten in der Lage sein, dies zu vereinfachen, indem Sie einfach Folgendes tun: '$ updatedvalue = (int)" 250 ";' – PsychoMo

+0

@Morven, ich gab das nur als Beispiel, sonst kommt '$ updatedvalue' aus dem Formularfeld. – WatsMyName

Verwandte Themen