2009-08-09 7 views
12

私はCakePHPを正常にインストールしましたが、home.ctpビューを編集できますが、インデックスページのデフォルトコントローラーはありますか?CakePHPインストール用のインデックスページのデフォルトコントローラはありますか?

To change the content of this page, create: APP/views/pages/home.ctp. 
To change its layout, create: APP/views/layouts/default.ctp. 
You can also add some CSS styles for your pages at: APP/webroot/css. 

答えて

7

はい、デフォルトのコントローラは、に位置をPagesController、次のとおりです。あなたはこのコントローラに変更を加える場合は

cake/libs/controller/pages_controller.php 
+6

私はこの答えは一種の危険であると思いますが、これはGoogleで最初の結果であるように、私は私が3歳の答えを明らかにするだろうと思いました。 cake/libs/controller/pages_controller.phpファイルはコアソースの一部であり、コアファイルに対する変更はソースを更新する際に上書きされます。ルートを変更すると(Tarikの答え)、構成の方法で問題が抽象化され、有効なオプションです。しかし、CakePHPは構成の精神に則った慣行をしています。そのため、正しい答えとしてマークされるべきHectorsの解決策です。 – Strixy

23

あなたがデフォルトをコピーすることをお勧めし

cake/libs/controller/pages_controller.php to app/controller/pages_controller.php

理由は、アプリケーションを更新するときにファイルを上書きできる "cake"フォルダ内のものを変更しないでください最新のcakephpバージョンで。そしてまた、あなたが、1つのアクションにすべてのアクションを接続し、同じ設定ファイルに以下のコードを使用したい場合は

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

+4

CakePHP 2.1以降では、PagesController.phpは(コアフォルダの代わりに)app/Controllerフォルダに含まれ、コアソースの一部ではなくなりました。 – Strixy

13

あなたは、以下のようにRoute::connect()関数の引数を変更することにより、デフォルトの動作を変更することができます:

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display')); 

もちろん、引数は必要に応じて変更する必要があります。

この設定はapp/config/routes.phpにあります。

Route::connect()についての詳細情報を取得、このページをご覧ください:http://api.cakephp.org/class/router#method-Routerconnect

関連する問題