プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
FuelPHP1.6、Model_Crudついて理解する(2)データの取得
FuelPHPではModel_Crudを継承したモデルを作成すると
あらかじめCRUD用のメソッドを含んだモデルになるのだそうな。
そこら辺をちょいと見ていこうかな、というのが今回のテーマです。

取りあえず前準備φ(--)

■テスト用のテーブル
CREATE TABLE IF NOT EXISTS `tbl_test01` (
  `pk_id` int(10) NOT NULL AUTO_INCREMENT,
  `column_varchar01` varchar(255) DEFAULT NULL,
  `column_int02` int(10) DEFAULT NULL,
  `column_varchar02` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`pk_id`),
  KEY `pk_id` (`pk_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

■Model_Crudを継承したモデル
<?php
class Model_Test01 extends Model_Crud
{
    //使用するtable
    protected static $_table_name = "tbl_test01";

    //プライマリキー
    protected static $_primary_key = "pk_id";

    //データ検証用のルール
    protected static $_rules = array(
        'column_varchar01' => 'required'
    );

    //値未設定時のデフォルト値
    protected static $_defaults = array(
        'column_int02' => 100
    );
}

それではまず「find_all()」を使って全データを取得してみるφ(--)

public function action_select()
{
    //データ取得
    $mt = Model_Test01::find_all();

    //表示
    var_dump($mt);
}

結果φ(--)

array(3) {
  [0]=>
  object(Model_Test01)#24 (8) {
(中略)
    ["pk_id"]=>
    string(1) "1"
    ["column_varchar01"]=>
    string(9) "あああ"
    ["column_int02"]=>
    string(2) "10"
    ["column_varchar02"]=>
    string(9) "いいい"
  }
  [1]=>
  object(Model_Test01)#25 (8) {
(中略)
    ["pk_id"]=>
    string(1) "2"
    ["column_varchar01"]=>
    string(9) "おおお"
    ["column_int02"]=>
    string(2) "11"
    ["column_varchar02"]=>
    string(9) "かかか"
  }
  [2]=>
  object(Model_Test01)#26 (8) {
(中略)
    ["pk_id"]=>
    string(1) "3"
    ["column_varchar01"]=>
    string(9) "あああ"
    ["column_int02"]=>
    string(2) "10"
    ["column_varchar02"]=>
    string(9) "いいい"
  }
}

次に「find_by_pk()」を使ってプライマリキー指定でデータを取得してみるφ(--)

public function action_select2()
{
    //データ取得
    $mt = Model_Test01::find_by_pk(2);

    //表示
    var_dump($mt);
}

結果φ(--)

object(Model_Test01)#24 (8) {
(中略)
  ["pk_id"]=>
  string(1) "2"
  ["column_varchar01"]=>
  string(9) "おおお"
  ["column_int02"]=>
  string(2) "11"
  ["column_varchar02"]=>
  string(9) "かかか"
}

最後に「find()」を使って任意の条件でデータを取得してみるφ(--)

public function action_select3()
{
    //条件作成
    $condition = array(
        'where' => array(
            'column_int02' => 10,
            'column_varchar02' => "いいい"
        ),
    );


    //データ取得
    $mt = Model_Test01::find($condition);

    //表示
    var_dump($mt);
}

結果φ(--)

array(2) {
  [0]=>
  object(Model_Test01)#24 (8) {
(中略)
    ["pk_id"]=>
    string(1) "1"
    ["column_varchar01"]=>
    string(9) "あああ"
    ["column_int02"]=>
    string(2) "10"
    ["column_varchar02"]=>
    string(9) "いいい"
  }
  [1]=>
  object(Model_Test01)#25 (8) {
(中略)
    ["pk_id"]=>
    string(1) "3"
    ["column_varchar01"]=>
    string(9) "あああ"
    ["column_int02"]=>
    string(2) "10"
    ["column_varchar02"]=>
    string(9) "いいい"
  }
}


他に「find_by()」や「find_one_by()」等があるようですが、
1項目しか条件に指定できないようなので使う機会は多くないと思います。
ぶっちゃけ「find()」で代用できるし。

と言う訳でModel_Crudでのデータ取得、完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:FuelPHP  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事