我正在将我的应用程序从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
感谢您的帮助。
答案 0 :(得分:3)
您发布的代码存在许多错误:
App :: uses的格式应为App::uses('ClassName', 'Package');
AppModel不是包;这是一堂课。软件包几乎只对应于要查看的文件夹。
您应该使用内置的Auth组件登录,而不是编写自己的逻辑。请参阅Auth教程:http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html
您永远不应该直接调用session_start或访问$ _SESSION。框架中有一些功能,所以你应该使用它们。
您应该避免在模型中访问会话。该逻辑应该在控制器中。
答案 1 :(得分:0)
尝试此代码.......将代码放在FeedController的顶部 public $ uses = array('Login') 喜欢这个: class FeedController扩展AppController { public $ uses = array('Login');
}
答案 2 :(得分:-1)
尝试
App::uses('AppModel', 'Model');