トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

CakePHPでHelloWorld

アクション名は小文字とアンダースコアを使うこと
アクション名に大文字は避けたほうが無難。

その1

http://ameblo.jp/tondemonight/entry-10117208283.html

class HelloWorldController extends AppController {

public $name = 'HelloWorld';
public $uses = null;  // $uses = array(); でも同じ動作
public $autoRender = false;

function index()
{
	echo "hello world!";
}

}

これを

/cakeを配置した場所/app/controllers/hello_world_controller.php

としてサーバーに保存してやります。
ブラウザで

http://自分のドメインでcakeを配置した場所/hello_world/

としてアクセスすると、普通のHello Worldが表示されるようになります。

ビューを使いたい場合は

$autoRender = false; 

の行を削除するか、

$autoRender = true;

とします。
デフォルトがtrueなので普通は削除します。
そうすると、

/cake/xxxxx/app/views/hello_world/index.ctp(cake1.1の場合index.thtml)

をテンプレートファイルとして勝手に読み込みにいってくれます。
テンプレートファイルを読み込んで、テンプレートの一部書き換えをする動作を
Cakeではレンダリングと呼んでいるようです。

モデルを使いたい場合は

$uses = null;

のところにモデル名の配列を指定します。

$uses = array("Modelname");

みたいな感じ。

その2

http://blog.nospace.net/?p=6

<?php
/*
** hello_controller.php (revised)
** Put this file in your {Cakeinst}/app/controller folder
*/
 
class HelloController extends AppController {
  var $name = "Hello";
  var $uses = null;
 
  function index() {
    $data = 'Hello world!';
    $this->set('data', $data);
  }
 
}
?>

<!--
/*
** index.thtml
** put this file in your {Cakeinst}/app/views/hello folder
*/
-->
<hr size=1/>
<h1><?php echo $data ?></h1>
<hr size=1/>

エラー処理

debug を0にするとこのエラー処理は使えないので、その場合はredirectを使う。

http://book.cakephp.org/ja/view/154/Error-Handling

app/app_error.php を作成

<?php
class AppError extends ErrorHandler {
  $this->_outputMessage('error_test');
}
?>

app/views/errors/error_test.ctp を作成

<p>エラーだよ</p>

controller からの呼び出し

$this->cakeError('error_test');

リダイレクト

controller の redirect を使う。

[カテゴリ: プログラミング言語 > PHP]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2010年03月25日 18時34分31秒