参考にさせて頂いたページ
フォーム送信とForm Helper(4/5):初心者のためのCakePHP2.0 プログラミング入門
SampleController.phpの記述内容
参考ページにならって以下の通り。
<?php
App::uses('AppController', 'Controller');
App::uses('Sanitize', 'Utility');
class SampleController extends AppController {
public function index() {
$this->modelClass = null;
if ($this->request->data){
$result = Sanitize::stripAll(
$this->request->data['text1']);
} else {
$result = "no data.";
}
$this->set("result", $result);
}
}
このソースコードについて
参考ページによると
$this->modelClass = null;
の一行は
modelClassは、モデルのクラスを示すプロパティです。これの値をnullにしているのです。こうすることで、モデルを使わなくしています。Form Helperは、デフォルトでは、モデルに設定されたテーブルのデータを送信するフォームを生成する機能を持っており、まずモデルのチェックを行います。ですから、今回のようにモデルを利用しない場合は、この$this->modelClassをnullにしておかないと、「モデルが見つからない」とエラーになってしまいます。
とのこと。
送信されたデータは
$this->request->data
に格納されるとのことなので、
if ($this->request->data){
$result = Sanitize::stripAll(
$this->request->data['text1']);
} else {
$result = "no data.";
}
のようにして、$resultに文字列を格納しています。
前回編集してしまったindex.ctpを直す
前回
<p>result</p>
としてしまった箇所を
<p><?php echo $result; ?></p>
に直した。
これで、送信する度にここに送信結果が出力されるというわけだ。
index.ctpは以下の通り。
<h1>Index Page</h1>
<p>this is test View.</p>
<p><?php echo $result; ?></p>
<p>
<?php
echo $this->Form->create(false,
array('type'=>'post','action'=>'.')); // 2.1では、null→false
echo $this->Form->text('text1');
echo $this->Form->end("送信");
?>
</p>
</div>
軽くまとめというか疑問というか
index.ctp内の記述では、
echo $this->Form->create(false,
array('type'=>'post','action'=>'.')); // 2.1では、null→false
とform要素をcreateするときに、falseを渡して、
SampleController.php内の記述では、
$this->modelClass = null;
とnullを渡すってことで良いのかなぁ?
$this->modelClass = false;
としても普通に表示されるし、検索してもパッとわかる感じでもないので、頭の隅に留めておいて、一旦今日は無視しよう。
今回はここまで。