2017-02-11 51 views
1

我正在使用CakePHP 3.0.I是新的cookie概念。我已經成功創建了一個cookie,但是我想從cookie數組中刪除一個值。 這裏是我的代碼: -如何從cookie數組中刪除數組中的值?

enter code here 
$cookiedata= 
Array 
(
[0] => 2 
[1] => 1 
) 

$_GET['id'] = 2; 

public function cartitems(){ 
    $cookiedata = $this->Cookie->read('ProductCartdata'); 
    $this->loadModel('Products'); 
    $query = $this->Products->find('all')->where(['id IN' =>$cookiedata]); 
    $products = $query->hydrate(false)->toArray(); 
     if(isset($_GET['id'])){ 
      if(($key = array_search($_GET['id'], $cookiedata)) !== false) { 
        unset($cookiedata[$key]); 
      } 
    $this->redirect(['controller'=>'test','action' => 'cartitems']);  
    } 
     $this->set(compact('products','cookiedata')); 
} 

,我想這個結果: -

enter code here 
Array 
(
[0]=>1 
) 

回答

1

您可以在文檔中的Cookie的分量上閱讀了。有一個刪除法,如果你完全想刪除您的cookie中的數據:循環後

Cookie::delete($key)

在你的情況下,它可能更有意義上現有的數據寫:

$this->Cookie->write('ProductCartdata', $cookiedata); 
+0

爲什麼我們在從數組中刪除值後再次寫入cookie – kunal

+0

那麼您想要更新Cookie嗎?漫長的回答是。當你讀取cookie時,你會得到一份數據的副本,但它在cookie中保持不變。如果您更新數據,例如通過取消設置密鑰,您還必須更新cookie數據。否則,下次您從Cookie中讀取數據時,您將收到舊數據。 – dbrumann

+0

因此根據您我們再次寫入Cookie – kunal