2016-05-01 4 views
0

Ich bin eine Web-Anwendung mit PHP und Laravel-Framework erstellen. Ich habe die folgende Klasse in meinem Code.Speichern von Array von Objekten in MySql-Datenbank mit PHP und Laravel-Framework

class ReportField extends Model 
{ 
    // 
    public $name; 
    public $quantity; 
    public $unitCost; 
    public $totalCost; 
    public $estimation; 
} 

Ich schreibe ein Array dieser Objekte in eine Datenbank mit Serialisierung.

Nach dem Deserialisierung jetzt möchte ich diese Objekte im Array zurück in RecordField Objekte konvertieren.

$gpForecast=GPForecast::all()->first(); //here i read one of array i write to database 
$fieldList=unserialize($gpForecast->fieldList); 
foreach($fieldList as $field){ 
     echo $field->name; 
} 

Aber dann bekomme ich die Fehler Trying to get property of non-object So wie ich das beheben kann?

+0

Sollten Sie statt dessen "protected $ fillable" für Ihre Modellattribute verwenden? – haakym

Antwort

1

Dies ist: array_push($fieldsList,serialize($reportField) Ich denke, ist nutzlos, wenn Sie $gpForecast->fieldList=(serialize($fieldsList)); nach Iteration tun. Dies ist wahrscheinlich auch dazu führen, Thay Sie leeren Eintrag bekommen - hier:

foreach($fieldList as $field){

Sie versuchen

zu serialisierten Daten zu erhalten (hier können Sie sie serialisiert: array_push($fieldsList,serialize($reportField));).

Es bedeutet, dass Sie nicht ReportField Objekt, sondern wahrscheinlich serialisierte Daten erhalten.

Verwandte Themen