|
閲覧総計:2632 (本日:1 昨日:1) CakePHPの入門者トレーニングとして、gihyo.jpサイトの「CakePHPで高速Webアプリ開発」 【目次】(項目をクリックすると、そこに飛べます) 入力フォームを作る †(原典)http://gihyo.jp/dev/serial/01/cakephp/0006?page=1 /cake/app/view/index.ctpに入力フォームのコードを追加します。 <form action="<?php echo h($html->url('/tasks/add')) ?>" method="post" style="margin-bottom:1em">
<p><?php echo $form->input('Task.content', array('type'=>"text", 'label'=>"")) ?>
<?php echo $form->submit('タスクを追加') ?></p>
</form>
<table>
<tr>
<th>Id</th>
<th>タスク内容</th>
<th>状態</th>
<th>作成日</th>
</tr>
<?php foreach ($tasks as $task) { ?>
<tr>
<td><?php echo h($task['Task']['id']) ?></td>
<td><?php echo h($task['Task']['content']) ?></td>
<td><?php echo h($task['Task']['status']) ?></td>
<td><?php echo h($task['Task']['created']) ?></td>
</tr>
<?php } ?>
</table>
●CakePHP1.2では、入力フォーム回りの書式が変わりました。 <1.1書式> <form action="<?php echo h($html->url('/tasks/add')) ?>" method="post" style="margin-bottom:1em">
<p><?php echo $html->input('Task/content') ?>
<?php echo $html->submit('タスクを追加') ?></p>
</form>
<1.2書式> <form action="<?php echo h($html->url('/tasks/add')) ?>" method="post" style="margin-bottom:1em">
<p><?php echo $form->input('Task.content', array('type'=>"text", 'label'=>"")) ?>
<?php echo $form->submit('タスクを追加') ?></p>
</form>
●CakePHP1.2からはFormヘルパーの<form>タグ回りの機能が強化され以下の表現で書ける (参考)<1.2書式> <?php
echo $form->create('Task', array('type'=>"post", 'style'=>"margin-bottom:1em"));
echo $form->input('content', array('type'=>"text"));
echo $form->end('タスクを追加');
?>
http://localhost/cake/tasks/にアクセスした画面 addアクションを追加する †(原典)http://gihyo.jp/dev/serial/01/cakephp/0006?page=2 controllerにaddアクションを追加します。 /cake/app/controllers/tasks_controller.php <?php
// app/controllers/tasks_controller.php
class TasksController extends AppController { //AppControllerを継承
var $name = 'Tasks'; //controller名を定義(頭が大文字を覚える)
var $uses = array('Task'); //使用するmodel名を定義
function index() { //indexアクションの定義
$this->set('tasks', $this->Task->find('all', array('order'=>'Task.created ASC')));
//モデルTaskのデータ全てを変数tasksに格納しビューに渡す
}
function add() {
if (!empty($this->data)) { //モデルへの値が渡されてきているかチェック
if ($this->Task->save($this->data, true, array('content', 'created', 'modified'))) {
//DBへのレコード追加、saveの第3引数でホワイトリスト設定をした
$this->flash('タスクが追加されました', '/tasks');
//flashで簡易な完了メッセージ表示
return;
}
}
$this->redirect('/tasks'); //$this->dataに値がないか,saveに失敗したときはtasksへリダイレクト
}
}
タスクを追加してみよう †●完了メッセージが表示されるので,メッセージ上のリンクを辿る |