我在CakePHP控制器中使用公共变量uses
时遇到问题。
我使用以下模式设置应用程序。PagesController
扩展了AdminController
,AdminController
扩展了AppController
:
class PagesController extends AdminController
class AdminController extends AppController
字符串
我这样做是因为我还得到了一个ApiController
,而不是AdminController
,它用于应用程序中的附加API层。
我通过使用
App::uses('AdminController', 'Controller');
型
在PagesController
中,
App::uses('AppController', 'Controller');
型
在AdminController
中。
我觉得这样挺好的。
class AppController extends Controller {
public $uses = array('Print');
}
型
我想在我的每个子控制器中创建一个名为“Print”的模型。
这就是为什么我在AppController
中初始化它:
class PagesController extends AdminController {
public $uses = array('Article');
}
型
在PagesController
中,我想使用“Print”模型,除了声明的“Article”模型之外。在$uses
变量的注解中写道,子控制器中的每个加法都将合并到父$uses
变量中。但它没有这样做。它覆盖了它。
错在哪里?
2条答案
按热度按时间j0pj023g1#
这个工作OK:
第一个月
字符串
AdminController.php
个型
PagesController.php
个型
/pages/index
个型
Cake
只与一个控制器合并(默认情况下为AppController
),而不是一直向上(AdminController->AppController->Controller
)。这就是为什么Pages
中没有Photo
模型。你可以尝试从
Pages, Admin, App
(以及两者之间的任何类)中合并$uses
,如下所示:型
0vvn1miw2#
我认为你有语法问题,你可以尝试下面的解决方案。请在你的控制器中编写以下代码:
字符串