CakePhp问题:未找到类“登录”

时间:2014-01-06 21:12:45

标签: php cakephp

我正在将我的应用程序从codeigniter移动到cakephp。我有我的第一个问题,我无法修复它......

在我的控制器FeedController中,我称之为:Login::isLoggedInUser()

我有模型文件夹,文件login.php,代码如下:

<?php

App::uses('Login', 'AppModel');

class Login extends AppModel {

    public function __construct() {
        session_start();

        parent::__construct();
    }

    public static function authenticateUser() {
        $_SESSION['username'] = 'feeds.123';

        return $_SESSION['username'];
    }

    public static function isLoggedInUser() {
        if (isset($_SESSION['username']) && $_SESSION['username'] == 'feeds.123') {
            return true;
        }

        return false;
    }
}

我没有看到什么是错的,我的错误是:

Error: Class 'Login' not found  
File: D:\wamp\www\app\Controller\FeedController.php 
Line: 12

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

您发布的代码存在许多错误:

  1. App :: uses的格式应为App::uses('ClassName', 'Package'); AppModel不是包;这是一堂课。软件包几乎只对应于要查看的文件夹。

  2. 您应该使用内置的Auth组件登录,而不是编写自己的逻辑。请参阅Auth教程:http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html

  3. 您永远不应该直接调用session_start或访问$ _SESSION。框架中有一些功能,所以你应该使用它们。

  4. 您应该避免在模型中访问会话。该逻辑应该在控制器中。

答案 1 :(得分:0)

尝试此代码.......将代码放在FeedController的顶部 public $ uses = array('Login') 喜欢这个: class FeedController扩展AppController { public $ uses = array('Login');

}

答案 2 :(得分:-1)

尝试

App::uses('AppModel', 'Model');