cakephp:从插件访问控制器

时间:2013-02-09 15:18:48

标签: cakephp cakephp-2.1

我正在使用蛋糕2.2。我想修改一个UserMgmt插件,以使用父应用程序中的几个模型和控制器。

我在插件中有一个视图,需要访问“酒店”控制器和“GetHotels”操作。我的插件视图有:

  $this->Js->get('#UserRegionId')->event('change',
  $this->Js->request(array(
     'controller'=>'Hotels',
 'action'=>'GetHotels'
), array(
'update'=>'#UserCategoryId',
'async' => true,
'method' => 'post',
'dataExpression'=>true,
'data'=> $this->Js->serializeForm(array(
            'isForm' => true,
            'inline' => true))
    )
)
);

我怀疑我需要在UserMgmt.UsersController上的类定义之前添加app :: uses

  App::uses('Hotel','Model');
  App::uses('Hotels','Controller');

但我不行。

我收到错误错误:

  Error: [MissingControllerException] Controller class HotelsController could not be found.

1 个答案:

答案 0 :(得分:0)

视图中的代码未在内部访问控制器。 $this->Js->request()通过ajax调用网址。所以你不需要App::uses()

将控制器/操作设置为小写。网址通常总是小写的(至少它们应该是为了理智!)。

'controller'=>'hotels',
'action'=>'get_hotels'

要测试这些是否有效,请直接访问路径:

http://yourdomain.com/hotels/get_hotels