[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ランキング]検索順位についての検証作業

  2. [Amazon Polly]多言語翻訳に対応したワードプレスプラグイン…

  3. [CakePHP3]AWS Linux2にPHP7.2とCakePHP…

  4. [英会話ダイアログ・サイト]システム開発者向けの英会話ダイアログを追加…

  5. [node.js]Lambda Node.jsランタイムのアップグレー…

  6. [LaravelとCakePHPの機能比較]

  7. [Alexaスキル開発] Alexaスキル「楽器クイズ」制作について

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

最近の記事

PAGE TOP