-1

Joomlaのすべてのモデルを、いくつかのメソッドを使用して独自のクラスで拡張する必要があるため、もう1つのクラスを作成します

class Staff extends JModelLegacy{

    public function lol(){
        die('lol');
    }
}

そしてそれでモデルを拡張します

require JPATH_BASE.'/components/com_component/misc/extend_model.php'; 

class ComponentModelSites extends Staff{
public function saveSiteInfo($input){
        $this->lol();
}

問題は、呼び出すと、メソッドが見つからないsaveSiteInfoという致命的なエラーが発生するが、のすべてのメソッドが表示されることです。どこが間違っているの?lolvar_dump(get_class_methods($this));JModelLegacy

4

2 に答える 2

0

それは正常に動作します。何か[他の]間違ったことをしているに違いありません。

http://ideone.com/tDouwQを参照

<?php
class Staff {

    public function lol(){
        die('lol');
    }
}

class ComponentModelSites extends Staff{
public function saveSiteInfo($input){
        $this->lol();
}
}
$cms = new ComponentModelSites();
$cms->saveSiteInfo(null);
于 2012-11-28T16:37:17.560 に答える
0

あなたのコードは正常に動作します。

<?php

class Staff{

    public function lol(){
        die('lol');
    }
}


class ComponentModelSites extends Staff {

        public function saveSiteInfo($input){
                $this->lol();
        }
}

$obj = new ComponentModelSites();
$obj->saveSiteInfo(1);

期待される結果が得られます。間違ったファイルを含めるか、ばかげたことをする必要がありますが、与えられた例からはわかりません。

于 2012-11-28T16:37:19.297 に答える