2014-01-06 49 views
0

我正在将我的应用程序从codeigniter移动到cakephp。我有我的第一个问题,我不能够解决它......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 

感谢您的帮助。

+0

阅读该文档会作出这个问题,所以没有必要:http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html – mark

回答

3

有一些错误的代码你张贴的事情:

  1. 应用::使用应该是以下格式App::uses('ClassName', 'Package'); AppModel是不是一个包;这是一个班级。包装非常简单,只是对应于寻找什么文件夹中。

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

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

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

+0

好的,谢谢,我会看看这些观点。 – zeflex

-1

尝试

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

同样的问题... :( – zeflex

0

试试这个代码.......把你FeedController 公共$使用的代码顶部=阵列( '登录') 像这样: 类FeedController扩展的AppController { 公共$ uses = array('Login');

}