2010年2月25日木曜日

cakephp modelをいじる

cake の model.php をいじくる…。

function __call($name, $params) {
$names = explode('_',$name);
$cnt = count($names);
if( $cnt >= 2 ) {
if( $names[0] == 'find' ) {
if( $names[1] == 'all' ) return $this->find( 'all', $params );
if( $names[1] == 'first' ) return $this->find( 'first', $params );
if( $names[1] == 'count' ) return $this->find( 'count', $params );
if( $names[1] == 'list' ) return $this->find( 'list', $params );
if( $names[1] == 'threaded' ) return $this->find( 'threaded', $params );
if( $names[1] == 'neighbors' ) return $this->find( 'neighbors', $params );
}
}
throw new Exception('Unknown method for Model::' . $name);
}


これで、


Model->find( 'first', ... );
// が
Model->find_first( ... );


で動くようになる…。発展させていけば、結構面白い事ができそう。

2010/03/06 追記:findBy メソッドあるじゃん orz...

0 件のコメント: