代码之家  ›  专栏  ›  技术社区  ›  Harsha M V

CakePHP组织控制器

  •  0
  • Harsha M V  · 技术社区  · 14 年前

    我对控制器的一些方法有以下常见的查询。那么有没有办法组织它呢?我需要控制器中的所有变量,因此无法创建私有方法并返回它。

        // Checks if the User is logged in if yes gathers the ID
        $id = $this->_loggedIN();
    
        // Find the ItemID from the Item Table
        $itemId = $this->User->Item->itemId('1', $id);
    
        // Finding the User Data and last Status Message
        $user = $this->User->Item->find('first', array('conditions' => array('Item.id' => $itemId), 'contain' => array('User', 'StatusMessage' => array('limit' => 1, 'order' => 'StatusMessage.created DESC'))));
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   pawelmysior    14 年前

    AppController中的函数如何?或者更好的AppModel?

        2
  •  2
  •   deceze    14 年前

    一旦

    $this->Auth->user('id');
    

    用户模型的所有其他数据都可以以相同的方式访问。这只是存储在会话中的密钥下 'Auth' 而且可以像 $this->Session->read('Auth.User.id') . 如果您想在会话中存储更多关于用户的数据(如相关项或其他内容), do it once in the login method

    function beforeFilter() {
        $this->Auth->autoRedirect = false;
    }
    
    function login() {
        if ($this->Auth->user()) {
            $item = /* find item */;
            $user = /* find user */;
            $this->Session->write('Auth.Item', $item);
            $this->Session->write('Auth.User', $user);
            $this->redirect($this->Auth->redirect());
        }
    }