0

Cake 1.3 アプリを 2.0 にアップデートしようとしています。一部の Model メソッドでは、次のように Session および Email コンポーネントをロードしています。

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置き換えられました。このクラスの使用方法の詳細については、 http://book.cakephp.org/2.0/en/core-utility-libraries/email.htmlCakeEmailを参照してください。

また、モデルのセッションにアクセスする場合は、代わりにクラスSessionComponentを使用する必要があります。CakeSessionこのクラスは次のものに含めることができます。

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

このクラスをインスタンス化する必要はありません。

于 2011-10-20T05:57:56.547 に答える