1

しばらくの間ケーキを使用していますが、ページコントローラーが少し変更されています。default.ctpで使用したいので、でインポートします。

App::uses('PagesController', 'Controller');

また

App::import('Controller', 'Pages');

どちらも私のローカルホストxamppで動作し、openshiftWebサーバーでも動作しません。何をしても、致命的なエラーが発生し、クラスが見つかりません。この問題を2時間グーグルしていて、ここの壁にぶつかったような気がします。助けてください :)

4

2 に答える 2

0

わかりました。代わりにrequestActionを使用しましたが、これは機能します。:)同様の問題を解決するには、たとえば$ pages = $ this-> requestAction('pages /');を使用します。

次に、必要なときにいつでも$pages配列を「foreach」します。重要!ページを作成するコントローラーの関数(この場合はコントローラーpagesControllerと関数'index')で、通常のように'設定'するだけでなく、作成した$pagesオブジェクトを返すことを忘れないでください。:)

于 2013-03-16T21:02:15.703 に答える
0

私はこれらの呼び出しを避け、CakePHP の規則を使用しようとします。ローカルの XAMPP コピーと OpenShift コピーの違いは、おそらく実行している CakePHP のバージョンが異なるためですが、慣例に従えば問題ありません。

PagesController を使用してすべてを foler app/View/Pages に配置することをお勧めします。そうすることで、CakePHP はすべてのインポート、require、ルーティングなどを処理します。それ以外では、OpenShift のアプリケーション パスは (XAMPP の /app/ ではなく) /php/app/ であることに注意してください。カスタムコントローラーを使用している場合、問題が発生する可能性があると思います。お役に立てれば!

編集: default.ctp とは、レイアウト ファイルを意味することに気付きました。個人的には、レイアウトでコントローラーを呼び出すのは好きではありません。これには要素またはヘルパーを使用することを好みます。また、PagesController は、実際にはサイト全体のレイアウトに含めることを意図したものではありません。/app/View/Pages フォルダー内のファイルを対象としています。

于 2013-03-16T19:37:13.070 に答える