2014-11-05 11 views
1

我(爲簡單起見)3個控制器:ACO節點重複使用Cake的aco_sync

AppController 
    - action 
    - anotherAction 

PostsContoller 
    - index 
    - add 

UsersController 
    - index 
    - add 
    - edit 

如果我跑./lib/Cake/Console/cake AclExtras.AclExtras aco_sync我得到如下:

Created Aco node: controllers/PostsController 
Created Aco node: controllers/PostsController/index 
Created Aco node: controllers/PostsController/add 
Created Aco node: controllers/PostsController/action 
Created Aco node: controllers/PostsController/anotherAction 
Created Aco node: controllers/UsersController 
Created Aco node: controllers/UsersController/index 
Created Aco node: controllers/UsersController/add 
Created Aco node: controllers/UsersController/edit 
Created Aco node: controllers/UsersController/action 
Created Aco node: controllers/UsersController/anotherAction 

換句話說,這兩個我的AppController中的操作正在爲每個其他控制器獲取一次aco_sync

這是正常的,還是指向某處的某個配置錯誤?

回答

1

這是正常的。如果您將控制器定義爲class PostsController extends AppControllerclass UsersControllers extends AppController,那麼這兩個類將繼承AppController的方法(注意:只有公共方法和受保護的方法,而不是私有方法)。

您還可以從PostsController和UsersController調用$this->action()$this->anotherAction()

這就是繼承的工作原理。

+0

謝謝@deimoks - 我只是不記得在以前的Cake版本中看到它,所以我認爲我這次可能做錯了什麼。 – Joseph 2014-11-09 01:06:11