CakePHP3をインストールしたあと、ControllerでHello Worldを表示してみる。
まずは、bakeでControllerを作成する。
$ bin/cake bake controller hello
src/Controller/HelloController.phpが作成される。
HelloControllerのindex()を以下の様に記載する。
public function index()
{
echo 'Hello World.';
}
さらに、config/routes.phpでルートを設定する。
Router::scope('/', function (RouteBuilder $routes) {
$routes->connect('/hello', ['controller' => 'Hello', 'action' => 'index']);
これで、http://hostname:port/helloにアクセスするとMissing Templateエラーが発生する。
src/Template/Hello/index.ctpがないからエラーになるようだ。
調べると、CakePHP3のControllerドキュメントに以下の記載がある。
CakePHP は ($this->autoRender に false をセットしない限り) アクションの後に 自動的に描画メソッドを呼び出します
なので、HelloControllerのindex()の中を修正する。
public function index()
{
$this->autoRender = false;
echo 'Hello World.';
}
再度、アクセスすると、今度はHello World.が表示できた。
コメント