TOPページはIndexControllerではない Cannot redeclare config()

URLからどのコントローラ、アクションを実行するかの指定は/app/config/routes.phpで行います。
TOPページの指定もここで行いますが、指定をしなかった場合、TOPページではコントローラを判断できず、
/app/controllers/controller.php

Controllerクラスを読みに行き、Missing Controllerとなります。

TOPページとは
http://www.example.com/
とした場合です。

コントローラの判断ができていない状態なので、controller.phpを配置すると今度は

Fatal error: Class 'AppController' not found

となります。

TOPページを指定するには、/app/config/routes.phpに次のように書きます。

Router::connect('/', array('controller' => '【コントローラ名】', 'action' => '【アクション名】'));

ここで、コントローラ名をindexとした場合、つまり次のようにした場合はエラーが出ます。

Router::connect('/', array('controller' => 'index', 'action' => '【アクション名】'));

次のようなエラーが出ます。

Fatal error: Cannot redeclare config() (previously declared in …/cake/basics.php:58) in …/cake/basics.php on line 75

config()を重複して定義することができないというエラーです。

TOPページには、index以外のコントローラ名を指定する必要があります。
topやdefaultなど、ほかのページで使用されておらず、TOPページとわかる名称に変更します。

TOPページのコントローラをtopとした場合

/app/config/routes.php

Router::connect('/', array('controller' => 'top', 'action' => 'index'));

/app/controllers/top_controller.php

<?php

class TopController extends AppController {
    function index() {
        
    }
}

関連記事

スポンサーリンク

文字列型(データ型)のまとめ

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る