0

私はケーキ2.2を使用しています。親アプリのいくつかのモデルとコントローラーを使用するように UserMgmt プラグインを変更したいと考えています。

「Hotels」コントローラーと「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.
4

1 に答える 1

0

ビュー内のコードは、コントローラーに内部的にアクセスしていません。$this->Js->request()ajax経由でURLを呼び出しています。だからあなたは必要ありませんApp::uses()

コントローラー/アクションを小文字に設定します。通常、URL は常に小文字です (または、少なくとも健全性のために小文字にする必要があります)。

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

それらが有効かどうかをテストするには、パスに直接アクセスします。

http://yourdomain.com/hotels/get_hotels
于 2013-02-10T02:42:09.603 に答える