0

デフォルトでは、Codeigniterショッピングカートクラスは組み込みのセッション関数を使用します。CIのセッションクラスは、Cookieまたはデータベースを使用するように構成できます。つまり、ショッピングカートはデータベースまたはCookieのいずれかを使用してセッション変数を保存します。

ただし、私のサイトではこれを実装したいと思います。ユーザーがログインしていない場合、カートはCookieデータを使用します。ユーザーがログインすると、カートはデータベースに保存されているデータを使用します。これは、カートクラスがCookieとデータベースを切り替えることができる必要があることを意味します。

組み込みのカートクラスに変更を加えずに、どうすればそれを達成できますか?それが不可能な場合は、カートクラスを書き直さなければならない可能性があります。

4

1 に答える 1

1

可能な方法は2つあります。

  1. 組み込みのカードクラスを継承し、product_insert、product_update、product_deleteメソッドをオーバーライドします。これはよりクリーンで、より優れたカスタマイズ性を提供します。必要な機能は非常に簡単で、次のような方法で実行できます。

    function product_insert() {   
      checkUserSignedIn();   
      if(true) {
        parent::product_insert();   
      } else {
        doYourthingHere();   
      } 
    }
    

このようなすべてのcrudメソッドをオーバーライドすると、必要なことを実現できます。

  1. カスタマイズされたライブラリを使用する

http://codeigniter.com/forums/viewthread/212926/P10/#1006680

それはあなたが必要とするいくつかの機能を持っていますが、それでもあなたはあなたの要件に正確に合うようにそれを微調整する必要があります

于 2012-07-15T06:54:21.013 に答える