人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

CakePHP 1.2 から 1.3 に、アプリケーションを移行しようとしています。

しかし、
”Error: Create the class SamplesController below in file: app\controllers\samples_controller.php”
とエラー表示されて、アプリケーションは正しく動作しません。

cake本体を設置したフォルダの app\controllers 下部には
samples_controller.php
が正しく設置され、
クラス名も下記のように正しく記入されています。

<?php
class SamplesController extends AppController {

var $name = 'Samples';
}
?>

プリフィックスルーティング関連の問題かと考え、
core.phpに下記を追加しましたが、動作は変わりません。
(このアプリケーションは、adminルーティングを利用しています)
Configure::write('Routing.admin', 'admin');


そんなに複雑なことをしているアプリケーションではないので、
単純なポイントだと思います。
この問題を解決するために、何かヒントを頂けましたら有難く存じます。


環境は、下記の通りです。
Windows XP Professional SP3
xampp 1.7.2


どうぞよろしくお願い致します。

●質問者: ita07
●カテゴリ:コンピュータ ウェブ制作
✍キーワード: Class Cake CakePHP Class CORE
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●60ポイント ベストアンサー

まず、エラーとは関係がありませんが、「Routing.admin」は非推奨になったそうです。

Router

Routing.adminは非推奨となりました。これはprefixが異なるルーティングの方式では、矛盾した振る舞いを提供していました。代わりにRouting.prefixesを使用すべきです。1.3のprefixルートは手動でルート定義を追加する必要がありません。全てのprefixルートは自動で生成されます。シンプルに変更するには、core.phpを変更してください。

http://book.cakephp.org/ja/view/1561/Migrating-from-CakePHP-1-2-...

そのまま上記のページの解説の続きを確認してください。

また、ルーティングパラメータに小さな変更があります。ルーティングパラメータは今や英数字と「-」、「_」または/[A-Z0-9-_+]+/から成るべきです。

Router::connect('/:$%@#param/:action/*', array(...)); // BAD

Router::connect('/:can/:anybody/:see/:m-3/*', array(...)); //Acceptable

1.3のために、Routerの内部はパフォーマンス向上とコードの乱雑さを減らすために大規模に書き直されました。この副作用として、コードの基幹部分にあることと引き換えに、問題的でありバグを引き起こしやすかった二つのまれにしか使われない機能が削除されました。まず、フル正規表現を使うパスセグメントが削除されました。もう次のようなルートは作れません。

Router::connect('/([0-9]+)-p-(.*)/', array('controller' => 'products', 'action' => 'show'))

上記の変更が原因になっていると思います。

「routes.php」の記述を見直してみてください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ