2017-02-11 14 views
1

私はCakephp 3.0を使用しています。新しいクッキーの概念です。私は正常にクッキーを作成しましたが、私はクッキー配列から値を削除したいです。 は、ここに私のコードです: -クッキー配列の配列から値を削除する方法は?

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::delete($key)

それはおそらくループした後、既存のデータを上書きする方が理にかなって:

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

なぜ我々は再び配列から値を削除した後にクッキーを書くか – kunal

+0

あなたはクッキーを更新したいですか?長い回想は答えです。クッキーを読むと、データのコピーが得られますが、クッキーにはそのまま残ります。データを更新すると、たとえば次のようになります。キーの設定を解除すると、Cookieデータも更新する必要があります。それ以外の場合は、次回にCookieを読み込んだときに古いデータが取得されます。 – dbrumann

+0

あなたに合わせて再度クッキーを書く – kunal

関連する問題