今までどうやってDBにアクセスしてたんだ?っとツッコミはさておき...。
EthnaではO/RマッパーとしてEthna_AppObjectが用意されているので、このオブジェクトを作ると用意にDBにアクセスできる様になる。
ethnaコマンドでオブジェクトを作る。
たとえば、personというテーブルがDB内にあったとき、そのテーブルにアクセスするオブジェクトを作るには、
% ethna add-app-object person
これで、プロジェクトディレクトリ内のAppディレクトリ内にファイルが生成される。
プロジェクト名が"sample"だと、app/Sample_Person.php が生成される。
これが生成されれば、後はインスタンスを生成して、そのインスタンスに対してsetメソッドで変数をセットした後、addメソッドを実行するとDBに反映される。
setメソッドの第一引数はプロパティ名で第二引数は値。
<?php class Sample_Form_Main extends Sample_ActionForm { // 省略 } class Sample_Action_Main extends Sample_ActionClass { function prepare() { return null; } function perform() { $person = $this->backend->getObject('person'); $person->set("name", "taro yamada"); $person->add(); return 'main'; } } ?>
こんな感じで書けばActionが実行された際にpersonテーブルのnameカラムに"taro yamada"と設定されてDBが更新される。