2016-05-03 12 views
1

alle ich verwende Laravel 5 und mein Code wie dieseLaravel eines mit einem anderen Feld abgelegt aktualisieren

$assign = Assign::where('kh','=',$product->kh)->update(['plan_assign_amount' => 'ROUND(single_sales_rate*'.($skuCounts*2).')']); 

so, das ist ganz einfach und eigentlich in mysql statment, meine SQL-Zeichenfolge ist wie folgt

update `assign` set `plan_assign_amount` = ROUND(single_sales_rate*18); 

aber es konnte nicht funktionieren, also gibt es eine einfache Möglichkeit, es zu tun? Oder verwenden Sie nur DB: update(), um eine rohe SQL auszuführen?

danke für Hilfe;

+1

Verwenden Sie 'DB :: raw()' – aldrin27

+0

Ist dieses Update für mehrere Zeilen oder einzelnes Element? –

+0

Was ist '$ skuCounts'? – Hamelraj

Antwort

0

Sie können roh db-Abfrage ausführen mit DB::statement, DB::raw oder DB::update oder Sie könnten versuchen, so etwas zu tun:

$assign = Assign::where('kh', '=', $product->kh)->first(); 
$assign->update(['plan_assign_amount' => round($assign->single_sales_rate * $skuCounts * 2)]); 
0

finden die Antwort

$assign = DB::table('assign')->where('kh','=',$product->kh)->update(['plan_assign_amount' => DB::raw('ROUND(single_sales_rate*'.($skuCounts*2).')')]); 

, die gut funktioniert !!

Verwandte Themen