FuelPHPでもTree Behavior
CakePHPにはTree BehaviorとTree Helperといった便利なものがあります。
詳しくは、
CakePHPの「OrderedBehavior」と「TreeBehavior」はマジで使うべき
とかを参照してもらうとして、
簡単にツリー構造を使いたい!といった要求から
こんなものを作ってしまいました。
しかしながら、未だ要素の追加、削除、親IDの変更しか作っていませんが…
使い方
設置
次の位置においてください
/fuel/packages/treeorm
config.phpを編集
treeormとormをAPPPATH/config/config.php の always_load の部分に追加します
return array( 'always_load' => array( 'packages' => array( 'orm', // 追加 'treeorm', // 追加 ), ) );
該当のモデルにovserversやフィールド等の追加
use Orm\Model; class Model_Testtree extends Model { protected static $_properties = array( 'lft', 'rght', 'parent_id', ); protected static $_observers = array( 'TreeOrm\\Observer_Tree' => array( 'events' => array('before_save','before_delete'), ), ); }
こいつを使うには必要なフィールドがあります。
`id` int unsigned NOT NULL auto_increment, `parent_id` int unsigned default '0', `lft` int(10) default '0', `rght` int(10) default '0', PRIMARY KEY (`id`)
これで、とりあえず使えるようになるはず
ソースを見ていただければわかるのだが、非常に汚いし、機能も全然ないのでそのうち綺麗に作り込む予定