モデルを更に考える (3/7)
作成:2010-02-18 18:46
更新:2010-05-10 20:05
更新:2010-05-10 20:05
■データの削除
続いて、データを操作するための機能について、もう少し触れておきましょう。前回、データの作成と表示についてはやりました。が、これで完璧というわけではありません。
まず「データの削除」というのも必要ですね。これは、モデルに用意されている「delete」というメソッドを使うのが一番簡単でしょう。これは以下のように呼び出します。
もっと削除するデータを具体的に指定したい場合は「deleteAll」というメソッドもあります。これは以下のようにして呼び出します。
では、IDを送信すると、そのデータを削除するサンプルをあげておきましょう。これは、indexアクションを書き換えて試してみてください。ここでは、deleteAllの練習も兼ねて、あえてdeleteを使わず、deleteAllで書いてあります。
まず「データの削除」というのも必要ですね。これは、モデルに用意されている「delete」というメソッドを使うのが一番簡単でしょう。これは以下のように呼び出します。
モデル->delete( 削除するID );引数に、削除するID(プライマリキーの値)を指定すると、そのID番号のデータを削除します。なお、CakePHP 1.2までは、deleteのエイリアスとして「del」「remove」といったメソッドも用意されていましたが、1.3からは削除されています。ご注意を。
もっと削除するデータを具体的に指定したい場合は「deleteAll」というメソッドもあります。これは以下のようにして呼び出します。
モデル->deleteAll( array( 項目の指定 => 値 ) );引き数には、配列で削除するための条件を指定します。例えば、「array("Mydata.name"=>"hoge")」とすれば、nameの値が"hoge"のものをすべて削除する、というわけです。
では、IDを送信すると、そのデータを削除するサンプルをあげておきましょう。これは、indexアクションを書き換えて試してみてください。ここでは、deleteAllの練習も兼ねて、あえてdeleteを使わず、deleteAllで書いてあります。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※indexメソッド
function index(){
$this->set("page_title","Sample Page");
$this->set("content_header","Sample Page.");
$this->set("content_footer","copyright SYODA-Tuyano. 2010.");
if (!empty($this->data)){
$this->Mydata->deleteAll(array("Mydata.id"=>$this->data["Mydata"]["DELETE"]));
}
$datas = $this->Mydata->find("all");
$this->set("datas",$datas);
}
※index.ctpの内容
<h1>データの一覧リスト</h1>
<?php echo $form->create("Mydata",array("type"=>"post","action"=>"./index")); ?>
<?php echo $form->input("DELETE"); ?>
<?php echo $form->end("削除"); ?>
<table>
<tr><th>名前</th><th>メール</th><th>電話</th></tr>
<?php foreach($datas as $data){ ?>
<tr>
<td><?php echo $data['Mydata']['name']; ?></td>
<td><?php echo $data['Mydata']['mail']; ?></td>
<td><?php echo $data['Mydata']['tel']; ?></td>
<?php } ?>
</tr>
</table>
※関連コンテンツ
「初心者のためのCakePHP 1.3 プログラミング入門」に戻る