0

我正在尝试将我的 Cake 1.3 应用程序更新到 2.0。在一些模型方法中,我正在加载会话和电子邮件组件,如下所示:

App::uses('SessionComponent', 'Controller/Component');
App::uses('EmailComponent', 'Controller/Component');

$Session = new SessionComponent();
$Email = new EmailComponent();

但是,当我加载这些页面时,出现此错误:

Warning (4096): Argument 1 passed to Component::__construct() must be an instance of ComponentCollection, none given, called in /Users/username/Sites/cake2app/app/Model/User.php on line 183 and defined [CORE/Cake/Controller/Component.php, line 77]

Notice (8): Undefined variable: collection [CORE/Cake/Controller/Component.php, line 78]

像使用 Cake 1.3 一样,在 Cake 2.0 中加载和使用组件的正确方法是什么?

4

1 回答 1

1

EmailComponent被类取代,有关如何使用此类的更多信息CakeEmail,请参阅http://book.cakephp.org/2.0/en/core-utility-libraries/email.html 。

当您想要访问模型中的会话时,SessionComponent您必须使用类而不是。CakeSession您可以将此类包含在:

App::uses('CakeSession', 'Model/Datasource');

没有必要实例化这个类。

于 2011-10-20T05:57:56.547 回答