[CakePHP3]DocumentRootとルーティング情報の変更

CakePHP3のインストール、CakePHPプロジェクトを作成後の設定で備忘録として基本的なことをメモしておきます。

CakePHPプロジェクト作成後、指定したパスでCakePHP特有の画面が正常に表示されない。

【Apacheの設定】
httpd.conf内のDocumentRootの指定の際、「webroot」の記載を漏らしていたため、画像やCSSのパスがおかしくなってしまいましたのでマニュアル通りに設定しました

[CakePHP 3.6 Red Velvet Cookbook]
Apache を利用している場合は、DocumentRoot ディレクティブに 下記のように指定します。DocumentRoot /cake_install/webroot

また、mod_rewriteを使用するため、DocumentRoot に対して AllowOverride を All に変更しました。

【結果】
指定したパスでCakePHP特有の画面が正常に表示されました。

トップページを指定したコントローラーで処理させたい

http://www.sample.jp/index.phpに指定のビューを表示させる方法についてのメモです。
・ルーティング情報の変更
ルーティングとは、URLから目的の「コントローラ・アクション」に処理を振り分けるための仕組み。

app/config/routes.php内のデフォルトの「PagesController.php」の箇所をコメントアウトし、「ItemsController.php」を読み出すように変更しました。

#$routes->connect('/', ['controller' => 'Pages', 'action' => 'display', 'home']);

$routes->get('/', ['controller' => 'Items', 'action' => 'index']);

参考にしたページ:CakePHP3で自作アプリを作ってみた part3 検索機能の実装

・Viewの追加
「ItemsController.php」用のviewファイル「index.ctp」をapp/src/Template/Itemsフォルダ内に作成し、テーブル「Items」のレコードを呼び出せました。

public function index(){
$items = TableRegistry::getTableLocator()->get('Items');
$this->set('posts', $items->find('all'));
}

データベースアクセス & ORM

「CakePHP 3.6 Red Velvet Cookbook」に「CakePHP の組み込み ORM」のスクリプトの例があったので試してみたところ、記載通り簡単に「Items」テーブルのレコードを呼び出すことができました。

データベースの規約に則っていれば、問題なく動きます。CakePHP のモデルに対応するテーブル名は、複数形でアンダースコアー記法です。

関連記事

  1. [Google Maps]グーグルマップが表示されない

  2. [AWS Amazon Connect]東京リージョンで一般提供開始

  3. Amazon Echo

    [ウェブシステム開発]Alexa開発スキルを学ぶ:その2

  4. [AWS]Elastic Beanstalk、使ってみました

  5. [Amazon Polly]SSMLタグで発音記号を使用する

  6. [Alexa スキル開発]オーディオファイル作成

  7. Echo Dot (エコードット) - スマートスピーカー with Alexa

    [ウェブシステム開発]Alexa開発スキルを学ぶ:その3

  8. Amazon Echo

    [ウェブシステム開発]Amazon Alexa開発:音声デザインガイド…

最近の記事

PAGE TOP