モデルを更に考える (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 プログラミング入門」に戻る