Laravel ->put()-Problem – gemischter Inhalt (JSON vs. Nicht-JSON)
P粉955063662
P粉955063662 2023-09-09 15:30:11
0
1
492

Ich habe Probleme bei der Verwendung der Laravel-Funktion put(), weil ich JSON-Inhalte in dieses einzelne Szenario einfügen möchte.

$datatable->GroupsCollection = $datatable->GroupsCollection->put($job, '{"grade":'.$grade.'}' );

Aber beim Versuch, „falsches“ JSON zu erstellen, lauten die eingefügten Werte: {"等级":'VALUE_OF_$GRADE'} Ich habe versucht, den Backslash mit str_replace()stripslashes() zu entfernen, aber ohne Erfolg.

Ich habe es gegoogelt und es gibt etwas über die Besetzung im Modell zu lesen. Also habe ich Folgendes eingegeben:

protected $casts = [
    'dvalue' => 'array',
];

Dadurch wird die bestehende Funktionalität des Codes beeinträchtigt.

public function getGroupsCollectionAttribute()
{
    return collect($this->dvalue ? $this->dvalue['groups'] : null);
}


public function setGroupsCollectionAttribute($value)
{
    $currentValue = $this->dvalue ?? new Collection();
    $this->dvalue['groups'] = $currentValue->$value;
}

Ich habe get „behoben“, bin mir aber nicht sicher, wie ich diese neue Umwandlung verwenden soll, um die Funktion „set“ zu formatieren und auf ein Array festzulegen.

Es ist erwähnenswert, dass wir in den Datenbankzeilen etwas durcheinander bringen, sodass es sich nicht immer um JSON handelt. Gibt es eine einfachere Möglichkeit, dieses Problem zu lösen?

P粉955063662
P粉955063662

Antworte allen(1)
P粉002023326

通过简单地创建一个像这样的数组来修复它:

$grade_json = array("grade" => $grade);
$datatable->GroupsCollection = $datatable->GroupsCollection->put($job, $grade_json);
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage