基本的な利用方法

基本的な使用方法

この項目ではModelの基本的な操作である、データの取得・追加・更新・削除の方法について説明します。

データの取得

データの取得には複数の状況が考えられます。特定の条件を加えた上で1件あるいは全件取得したい場合は、次のようなメソッドをモデル中に作成します。

/**
 * public_flgが1で、公開状態であるデータを全て取得する。
 */
function getPublicData(){
    $select = $this->_db->select(); // セレクタを取得する
    $select->from($this->_name); // テーブル名をセットする
    $select->where('public_flg = ?', self::PUBLIC_FLG_ON); // public_flgが1であることの条件をセットする。
    $select->where('delete_date IS NULL'); // 論理削除されていないこと
    return $this->getAll($select->__toString()); // 
}

データを取得するとき、Zend_Db_Selectでオブジェクトを取得し、それによりSQL文を生成します。Zend_Db_Selectの詳細は下記ページをご覧ください。

http://framework.zend.com/manual/ja/zend.db.select.html

条件を設定してデータを取得する場合はこのようにメソッドを作成する必要がありますが、特定の条件でデータを取得するメソッドも用意されています。主キーを元にデータを1件取得するAppModel::getByPrimal($id)メソッド、キーと値を指定し、配列として返すAppModel::getList($key, $value, $cond = array(), $order = false)メソッドがそれにあたります。

ページング処理を行った上でデータを取得したい場合、コントローラ中でpaginatorを設定します。設定方法の詳細はページング・ソーティングについての項目をご覧ください。

データの追加

データの追加にはinsertメソッドを使用します。ZF-Exではinsertやupdate時に入力内容のチェックは行いません。行う前にisValidメソッドを使用して入力チェックを行うようにして下さい。

データ追加は次のように行います。なお、追加を行うにはフィールドが正しく設定されている必要があります。フィールドの設定方法についてはフィールドの設定についての項目をご覧下さい。

$data = array('field_1' => 'val_1', 'field_2' => 'val_2'); // insertする値
$model = new Model_Test();
$id = $model->insert($data); // $idには主キーが入る

データの更新

データの更新にはupdateメソッドを使用します。updateメソッドでは第二引数で主キーを指定することで対象のデータの更新を行います。

$data = array('field_1' => 'new_val_1', 'field_2' => 'new_val_2'); // insertする値
$model = new Model_Test();
$id = $model->update($data, $id); // $idには主キーが入る

データの削除

データの削除にはdeleteメソッドを使用します。データの削除は次のように行います。

$model = new Model_Test();
$model->delete($id);

deleteメソッドでは第一引数に主キーを指定し、その主キーを持つ行を削除します。他の条件により削除を行いたい場合には別のメソッドを用意するか、メソッドのオーバーライドするようにお願いします。

また、データの削除はデフォルトでは論理削除を行います。物理削除とするには設定を変更する必要があります。詳しくはメンバ変数についての項目をご覧下さい。