我已经和Yii框架合作了一段时间,但我知道我正在努力研究基于MVC架构的我自己的简约框架。 我们只是说我有一个父模型 ModelCore ,它扩展了所有其他模型(也提到了PageModel)。它定义了方法:
public function find( $condition ){
$sql = "SELECT * FROM {$this->table()} WHERE {$condition} LIMIT 1";
// executing query and returning the result
}
当我想以这种方式从其他类( URLresolver )调用此方法时,我陷入困境:
//...
elseif ( PageModel::find("`url` = '{$bit}'") != NULL ) {
//...
脚本以致命错误结束:调用未定义的方法URLresolver :: table()
如果有人能够解释我在PHP中如何使用这些东西,我怎么能轻松访问一种方法呢?我很感激。
非常感谢。
答案 0 :(得分:1)
如果您使用::
,则它指的是静态函数。如果您创建了一个对象,则必须执行以下操作:
$obj = new PageModel( );
$obj->find(" YOUR QUERY ");
public function find( $q ){ }
如果你有一个静态方法(在这些函数中,$这不会对对象产生任何影响,因为你没有创建一个new
对象。
PageModel::find( $q ){}
public static function find ( $q ){ }
答案 1 :(得分:0)
脚本以致命错误结束:调用未定义的方法URLresolver::table()
找到你在哪里调用似乎不存在的table()
函数,并且......它是static
方法吗?相反,您不需要::
表示法,而是->
答案 2 :(得分:0)
错误非常明显:URLresolver
类没有实现(或继承)名为table
的方法。您确定不打算使用该名称调用属性吗?