- 追加された行はこの色です。
- 削除された行はこの色です。
#freeze
閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);)
CakePHP 1.2.3 encoding:UTF-8
日本特有との事ですが、ほとんどのWebツールでは、入力内容の「確認画面」をはさむのが
定石となってます。 CakePHPは外国製ですので bake でも「確認画面」を作ってくれません。
そこで、「確認画面」の作り方の一例として、ブログチュートリアルに「確認画面」を追加して
みました。 09/05/16
教材:ブログチュートリアル
http://book.cakephp.org/ja/complete/219/Blog
/app/models/post.php
<?php
class Post extends AppModel
{
var $name = 'Post';
var $validate = array(
'title' => array(
'rule' => array('minLength', 1)
),
'body' => array(
'rule' => array('minLength', 1)
)
);
}
?>
/app/controllers/posts_controller.php
<?php
class PostsController extends AppController {
var $name = 'Posts';
function add() {
//var_dump($_POST);
if (!empty($this->data)) {
if ($this->data['Post']['mode'] == 'confirm') {
$this->Post->set($this->data);
if ($this->Post->validates()) {
$this->render('confirm');
}
} else {
if($this->data['Post']['mode'] == 'Save Post') {
$this->Post->create();
if ($this->Post->save($this->data)) {
$this->flash('Your post has been saved.','/posts');
}
}
}
}
}
}
?>
/app/views/posts/add.ctp
<h1>Add Post</h1>
<?= $form->create('Post'); ?>
<?= $form->input('title'); ?>
<?= $form->input('body', array('rows' => '3')); ?>
<?= $form->hidden('mode', array('value' => 'confirm')); ?>
<?= $form->end('Save Post'); ?>
/app/views/posts/confirm.ctp
<h1>この内容でよろしいですか?<h1>
<br>
<?= $form->create('Post', array('action' => 'add', 'type' => 'post')); ?>
タイトル:<?= h($form->value('Post.title')); ?><br>
<?= $form->hidden('Post.title'); ?>
本文:<?= h($form->value('Post.body')); ?><br>
<?= $form->hidden('Post.body'); ?>
<?= $form->submit('戻る', array('name' => 'data[Post][mode]')); ?>
<?= $form->submit('Save Post', array('name' => 'data[Post][mode]')); ?>
<?= $form->end(); ?>
↓バリデート エラーメッセージが表示された画面
&ref(バリデートエラーメッセージ画面.JPG);
↓入力画面
&ref(入力画面.JPG);
↓確認画面
&ref(確認画面.JPG);
↓一覧画面
&ref(一覧画面.JPG);
#comment_nospam
#vote(参考になった[1],ふつう[0],参考にならなかった[0])
#vote(参考になった[2],ふつう[0],参考にならなかった[0])