2

カスタム コンポーネント (CakePHP 2.3) でセッション コンポーネントを使用しようとしていますが、セッション コンポーネント関数を呼び出すと、次のようになります。 7 行目の Component\CartComponent.php

私の CartComponent は次のようになります。

<?php
App::uses('Component', 'Controller');
class CartComponent extends Component {
    public $components = array('Session');

    function hasItems() {
        $cart = $this->Session->read('Cart');
        return $cart != null && count($cart) > 0;
    }

}
?>

そして、コントローラーで使用します:

<?php
class OrdersController extends AppController {
    public $name = 'Orders';
    public $components = array('Cart', 'Email');

    function beforeFilter() {
        parent::beforeFilter();
        if ($this->Cart->hasItems()) {
            $this->Auth->allow('add_item', 'remove_item', 'cart');
        } else {
            $this->Auth->allow('add_item', 'remove_item', 'cart', 'make');
        }
    }
}
?>
4

3 に答える 3

8

私が試したカスタムコンポーネント内でセッションを使用するために

public $components = array('Session');

そして、それを使用して呼び出しました

$this->Session->read('Cart');

しかし、私はそれを使用することができず、使用し始めます

CakeSession::read('Cart')

今では動作します。ケーキのphpバージョン> 2で使用したことに注意してください。

于 2013-10-31T14:18:44.920 に答える
3

コンポーネントの使用でセッションを使用する場合-

$test = CakeSession::read('user'); 

print_r($test);
于 2014-03-21T16:29:52.620 に答える