2016-06-02 25 views
2

Ich bin neu in Laravel, ich führe eine Abfrage und bekomme Zeilen aus der Datenbank, und ich möchte eine Spalte dieser Zeilen bearbeiten, bevor sie im Blick bekommen. So, hier ist mein Code Stück:So bearbeiten Sie Elemente in Laravel-Sammlung

$callPlans = CustomerCallPlan::whereNotNull('id'); 

foreach ($callPlans->get() as $callPlan) { 
    dd($callPlan); 
} 

Und die Ausgabe Screenshot:

enter image description here

Ich brauche alle ersetzen die 'x' Zeichen mit '-' von numbertemplate Spalte ..

Antwort

6

Wenn Sie diese Transformationen immer für Ihr Modell tun möchten, können Sie einfach die folgende Zugriffsmethode zum Modell-Klasse hinzufügen:

public function getNumbertemplateAttribute() { 
    return str_replace('x', '-', $this->attributes['numbertemplate']); 
} 

Jetzt jedes Mal zugreifen Sie $ customerCallPlan-> numbertemplate Sie erhalten die konvertierte Zeichenfolge.

Ansonsten konvertieren nur die Spalte, wenn Sie die Daten holen:

$plans = $callPlans->get()->map(function($plan) { 
    $plan->numbertemplate = str_replace('x', '-', $plan->numbertemplate) 
}); 
2

Sie könnten update() und str_replace():

$callPlans = CustomerCallPlan::whereNotNull('id'); 

foreach ($callPlans->get() as $callPlan) { 
    $callPlan->update(["numbertemplate"=>str_replace("x", "-", $callPlan->numbertemplate]); 
} 
verwenden

Hoffe das hilft.

3

Sie folgendes tun können:

$callPlans = CustomerCallPlan::whereNotNull('id')->get(); 

foreach ($callPlans as $callPlan) { 
    $callPlan->numbertemplate = (whetever you need); 
    $callPlan->save(); //save the changes 
} 

Hope this hilfreich war.

+0

Dies ist nicht für große Sammlung Größe empfohlen, so denke darüber nach, wenn ich eine Art von Seitenumbruch verwenden. und ich möchte etwas verarbeiten, ohne die paginierte Sammlung zu verlieren, mit anderen Worten, ich will nur die geholten Einzelteile pro Anfrage verarbeiten. Ich empfehle, Artikel zu bearbeiten, die als Referenz übergeben wurden –

Verwandte Themen