CakePHP 1.3 で app_controller でモデルを使う場合は App::import() を使うと思いきや ClassRegistry::init() を使う

CakePHP 1.3 の app_controller でモデルを使いたいことがあります。
しかし app_controller.php で以下のようにするとエラーか何か出た気がします。

1
2
3
4
5
6
7
8
9
class AppController extends Controller
{
	public $uses = Array('Item');
 
	public function beforeFilter()
	{
		$this->set('items', $this->Item->get());
	}
}

もし app_controller でモデルを使いたい場合は以下のようにするのが正しいです。

1
2
3
4
5
6
7
8
9
App::import('Model', 'Item');
class AppController extends Controller
{
	public function beforeFilter()
	{
		$model = new Item();
		$this->set('items', $model->get());
	}
}

追記: と思いきや ClassRegistry::init() を使うのが正しい作法のようです。

1
2
3
4
5
6
7
8
class AppController extends Controller
{
	public function beforeFilter()
	{
		$model = $modelNews = ClassRegistry::init('Item');
		$this->set('items', $model->get());
	}
}

コメント

コメントは受け付けていません。