CakePHP - 登録機能を作成してみた
前回に引き続き、登録機能を作成してみます。
登録機能の作成
- コントローラの編集
users_controller.phpにaddアクションとaddアクションを追加します。
「data」がフォームの値です。CakePHPのフォームヘルパーを利用すると、name属性が「data」になります。save()関数でDBに登録を行います。
<?php
class UsersController extends AppController
{
var $name = 'Users';
function index() {
$this->set('users', $this->User->find('all'));
}
function view($id) {
$this->User->id = $id;
$this->set('user', $this->User->read());
}
function add() {
if (!empty($this->data)) {
if ($this->User->save($this->data)) {
$this->flash('ユーザの登録が完了しました。','/users/index');
return;
}
}
}
}
flash()関数は、ユーザに1秒間メッセージを表示してから、他のURLの画面を表示させます。正し、DEBUGが1以上の場合は他のURLに遷移しないので、app/config/core.php内以下の部分を0に変更してください。
Configure::write('debug', 2);
- ビューの作成
app/veiws/にadd.ctpというファイルを作成します。
<h1>ユーザ一登録</h1> <form id="UserAddForm" method="post" action="/cake/users/add"> <fieldset style="display:none;"><input type="hidden" name="_method" value="POST" /></fieldset> <p> <label for="UserName">名前</label> <input name="data[User][name]" type="text" size="10" value="" id="UserName" /> </p> <label for="UserAge">年齢</label><input name="data[User][age]" type="text" size="10" value="" id="UserAge" /> <div class="submit"><input type="submit" name="submit" value="登録" /></div></form> <p><a href="/cake/users/">戻る</a></p>
フォームを全てヘルパーを利用し、作成しました。上記の場合以下のHTMLが生成されます。
<h1>ユーザ一登録</h1> <form id="UserAddForm" method="post" action="/cake/users/add"> <fieldset style="display:none;"> <input type="hidden" name="_method" value="POST" /></fieldset> <label for="UserName">名前</label> <input name="data[User][name]" type="text" size="10" value="" id="UserName" /> <label for="UserAge">年齢</label> <input name="data[User][age]" type="text" size="10" value="" id="UserAge" /> <div class="submit"><input type="submit" name="submit" value="登録" /></div> </form> <p><a href="/cake/users/">戻る</a></p>
以下、画面が表示されます。
テキストフィールドのサイズを指定いますが、長さが変わりません・・・。とりあrず完了とします。

















