libro
www.tuyano.com
初心者のためのCakePHP 1.3 プログラミング入門

モデルを更に考える (3/7)

作成:2010-02-18 18:46
更新:2010-05-10 20:05

■データの削除

続いて、データを操作するための機能について、もう少し触れておきましょう。前回、データの作成と表示についてはやりました。が、これで完璧というわけではありません。

まず「データの削除」というのも必要ですね。これは、モデルに用意されている「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で書いてあります。

※プログラムリストが表示されない場合

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 プログラミング入門」に戻る