Idiormに基づくPHP orm Granadaは、次の方法でデータベースからフィールドを取得します。
class ORM {
...
public function __get($key) {
return $this->get($key);
}
}
class ORMWrapper extends ORM {
...
public function get($key) {
if (method_exists($this, 'get_' . $key)) {
return $this->{'get_' . $key}();
} elseif (array_key_exists($key, $this->_data)) {
return $this->_data[$key];
}
elseif (array_key_exists($key, $this->ignore)) {
return $this->ignore[$key];
}
// and so on ...
}
私の問題はpublic $field
、モデル クラスで定義すると、魔法のメソッド __get が呼び出されないため、ORM がデータベースからフィールドを取得しないことです。
どうやって
public $field
モデルクラスで宣言できる$field
が未定義の場合でも、マジック ゲッターを呼び出します
同時に?