SamuraiFWのActiveGatewayの使用時によくつまずく場所
Samurai FWでではORマッパー的なことを結構しっかりやってくれる。
個人的にはiBatisといい勝負するくらいがんばってると思う。
でも最初に使うときにはいろいろやることがあるので、結構面倒になることがあるので、
備忘録的にここに残しておくことにする
まずはmodelを継承したclassを作成する作成箇所はお任せするが今回はfindDetailを使用してみる。
これは複数行の参照となる。内容はこんな感じ、今回はhoge/test/managerに作成してみた。
参照テーブル名はtest。
public function findTest($dto) { return $this->AG->findAllDetail('test',$dto); }
このメソッドを参照するのに一手間かかる
大根ファイルを開いて以下のように定義する
- samurai.dicon
DateTest : class : hoge_test_manager
Samurai.*ファイルに記述をした場合、そのファイルと同等または下層のディレクトリが影響範囲になるため、
よく使うものは高階層においておくといいらしい。
そしたら、diconファイルの下に上記メソッドを呼び出したいactionを作成し一番最初て以下のように定義して使用する。
<?php /** * [[機能説明]] * * @package Package * @subpackage Action * @copyright Foo Project * @author Foo Bar <foo@bar.jp> */ class Action_Test_Mng extends Samurai_Action { public $DateTest; /** * 実行トリガー * * @access public */ public function execute() { parent::execute(); //テスト取得 $helpCon = $this->DateTest->getCondition(); $helpCon->where->active = "1"; //アサイン $this->testValue= $this->DateTest ->gets($helpCon); var_dump($this->testValue); return 'success'; } }
少し乱雑になってしまったけどこんな感じでできるらしい。
要点的には、modelを作る>diconファイルに定義>使うクラスので定義して作成する。って所だと思う
その他ActiveGateway関数
create 作成
findDetail 単一レコード参照
findAllDetail 複数レコード参照
update 更新
delete 削除
等
※ここに記述されている情報個人的な備忘録として作成してます。使用時は自己責任でお願いします。