2017-09-15 48 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

相关问题