2014/1/14 久米
本節で初めて出てくるメソッド とプロパティ
クラス | メソッド | プロパティ | 備考 |
C AppController | redirect | request | |
M AppModel | save findById delete |
||
V View | Form | ||
CakeRequest | is data |
data | |
FormHelper | create input end |
ファイル | コード例 | 備考 | |
C | app>Controller> NekoYohinsController.php |
<?php
class NekoYohinsController extends AppController {
public function index() {
$datas = $this->NekoYohin->find('all');
$this->set('ds',$datas);
}
public function add() {
if ($this->request->is('post')) {
// post時の処理
$this->NekoYohin->save($this->request->data);
$this->redirect(array('action' => 'index'));
}
//単にページを開いた時の処理
//なにもせず、ただview>add.ctpを表示するのみ
}
}
|
|
M | app>Model> NekoYohin.php |
無ければデフォルトでオブジェクト生成してくれるので。今回は不要 | |
V その1 |
app>View> NekoYohins>index.ctp 3.1の全検索と同じもの |
<h1>猫用品</h1> <table> <?php foreach ($ds as $d): ?> <tr> <td><?php echo $d['NekoYohin']['id']; ?></td> <td><?php echo $d['NekoYohin']['name']; ?></td> <td><?php echo $d['NekoYohin']['kind']; ?></td> <td><?php echo $d['NekoYohin']['price']; ?></td> </tr> <?php endforeach; ?> </table> |
|
V その2 |
app>View> NekoYohins>add.ctp |
<h1>猫用品</h1> <p>追加フォーム</p> <?php echo $this->Form->create('NekoYohin'); echo $this->Form->input('name', array('label' => '名前')); echo $this->Form->input('kind', array('label' => '種類')); echo $this->Form->input('price', array('label' => '価格')); echo $this->Form->end('追加'); ?> |
|
アクセス | http://localhost/web3cake/neko_yohins/add |
http://ホスト名/アプリケーション/テーブル/アクション/引数1/引数2/・・
http://localhost/web3cake/neko_yohins/edit/3
とするとNekoYohinsControllerのedit関数が実行される。この時引数$idに3が入って実行される。
ファイル | コード例 | 備考 | |
C | app>Controller> NekoYohinsController.php |
<?php
class NekoYohinsController extends AppController {
public function index() {
$datas = $this->NekoYohin->find('all');
$this->set('ds',$datas);
}
public function edit($id) {
if ($this->request->is('post') || $this->request->is('put')) {
// post時の処理
$this->NekoYohin->save($this->request->data);
$this->redirect(array('action' => 'index'));
} else { //単にページを開いた時の処理
$this->request->data = $this->NekoYohin->findById($id);
}
}
}
|
|
M | app>Model> NekoYohin.php |
無ければデフォルトでオブジェクト生成してくれるので。今回は不要 | |
V その1 |
app>View> NekoYohins>index.ctp 3.1の全検索と同じもの |
<h1>猫用品</h1> <table> <?php foreach ($ds as $d): ?> <tr> <td><?php echo $d['NekoYohin']['id']; ?></td> <td><?php echo $d['NekoYohin']['name']; ?></td> <td><?php echo $d['NekoYohin']['kind']; ?></td> <td><?php echo $d['NekoYohin']['price']; ?></td> </tr> <?php endforeach; ?> </table> |
|
V その2 |
app>View> NekoYohins>edit.ctp |
<h1>猫用品</h1> <p>編集フォーム</p> <?php echo $this->Form->create('NekoYohin'); echo $this->Form->input('id');//idはhiddenで表記される。idはどの行を編集するかに必要 echo $this->Form->input('name', array('label' => '名前')); echo $this->Form->input('kind', array('label' => '種類')); echo $this->Form->input('price', array('label' => '価格')); echo $this->Form->end('編集'); ?> |
|
アクセス | http://localhost/web3cake/neko_yohins/edit/1 |
ファイル | コード例 | 備考 | |
C | app>Controller> NekoYohinsController.php |
<?php
class NekoYohinsController extends AppController {
public function index() {
$datas = $this->NekoYohin->find('all');
$this->set('ds',$datas);
}
public function del($id) {
if ($this->request->is('post') || $this->request->is('put')) {
// post時の処理
$this->NekoYohin->delete($this->request->data('NekoYohin.id'));
$this->redirect(array('action' => 'index'));
} else { //単にページを開いた時の処理
$this->request->data = $this->NekoYohin->findById($id);
}
}
}
|
delのpostで data[NekoYohin][id] が飛んでくる。 それを data('NekoYohin.id') で参照できる |
M | app>Model> NekoYohin.php |
無ければデフォルトでオブジェクト生成してくれるので。今回は不要 | |
V その1 |
app>View> NekoYohins>index.ctp 3.1の全検索と同じもの |
<h1>猫用品</h1> <table> <?php foreach ($ds as $d): ?> <tr> <td><?php echo $d['NekoYohin']['id']; ?></td> <td><?php echo $d['NekoYohin']['name']; ?></td> <td><?php echo $d['NekoYohin']['kind']; ?></td> <td><?php echo $d['NekoYohin']['price']; ?></td> </tr> <?php endforeach; ?> </table> |
|
V その2 |
app>View> NekoYohins>del.ctp |
<h1>猫用品</h1> <p>削除フォーム</p> <?php echo $this->Form->create('NekoYohin'); echo $this->Form->input('id'); echo $this->Form->input('name', array('label' => '名前')); echo $this->Form->end('削除'); ?> |
|
アクセス | http://localhost/web3cake/neko_yohins/del/5 |
演習4