2017-09-15 71 views
1

我有一個表格,在拖放時我要更新訂單值,但它可以工作,但是從值0開始更新,我想從1開始。 enter image description herePHP:更新值從0開始,而不是1

後:

enter image description here

我的代碼看起來像在這裏:

拖放之前

public function updateOrder(Request $request) 
    { 

     $queryParams = []; 

     $ids = $request->ids; 
     //el query será definido en su totalidad de forma manual 
     $query = 'UPDATE projects SET `order` = CASE id '; 
     //agregamos cada parámetro de orden y de id al array para respetar las convenciones de PDO 
     foreach ($ids as $order => $id) { 
      $query .= 'WHEN ? THEN ? '; 
      $queryParams[] = (int) $id; 
      $queryParams[] = (int) $order; 
     } 


     //por último agregamos los ids implicados en el update 
     $queryParams = array_merge($queryParams, $ids); 

     //generamos los ? necesarios para el array de ids en el query PDO 
     $whereInArray = array_fill(0, count($ids), '?'); 
     $whereInString = implode(", ", $whereInArray); 

     //agregamos dicho string generado al query final 
     $query .= "END WHERE id IN ($whereInString)"; 

     //realizamos el update 
     DB::update($query, $queryParams); 
    } 

¿什麼我需要在代碼中更新?

+0

嘗試'$ queryParams [] =(INT)$命令+ 1;' – superdev

+0

它的工作原理。發佈像一個答案:) –

+0

真的很高興聽到 – superdev

回答

1

請嘗試$queryParams[] = (int) $order+1;

+0

謝謝,認爲這個功能應該傳遞給雄辯? –

+0

我正在Laravel上工作,我正在使用php查詢。 –

+0

每當你陷入困境時請隨時詢問 – superdev

相關問題