2011-10-19 11 views
0

私はCake 1.3 appを2.0にアップデートしようとしています。私はこのエラーを取得し、それらのページをロードするときCakephp 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] 

をロードする適切な方法は何とケーキ1.3のようにケーキ2.0のコンポーネントを使用しますか?

+0

CakePHP 2.0がリリースされたばかりです。あなたがアップグレードする必要がある理由がない限り、私は待つことをお勧めします。あなたが必要な場合、あなたの答えは[Migration Guide](http://book.cakephp.org/2.0/en/appendices/2-0-migration-guide.html) –

+0

にあります。ベータとRCを使ってテストしてきた人にとって共通の問題です。私は、かなりのタイムラインなしで、2.0の1.3アプリをまとめて書き直しているだけです。 –

答えて

1

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

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

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

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