4

私はjoomlaで、コントローラーから割り当てることで名前に似たビュー自体のモデルとは異なるモデルを使用しています。

         $view->setModel($this->getModel('user'));

次に、そのメソッドgetSingleUser($ user_id)をビューで使用するにはどうすればよいですか。joomlaドキュメントの例では、次のようなものを使用しています。

$this->get("data1","model2");

では、data1はmodel2のメソッドの名前だと思いますか?もしそうなら、私の場合はuseridである引数をどのように渡すことができますか?これは多くのjoomla開発者が行っている簡単なことですが、私はあらゆる種類の開発者のジャックであり、joomlaに慣れていないので、皆さんから教えてもらいたいと思います。

4

1 に答える 1

9

最初のアプローチ

コントローラーを次のように変更してこれを行いました(これはユーザー用のコントローラーです)

function doThis(){ // the action in the controller "user" 
    // We will add a second model "bills"
    $model = $this->getModel ( 'user' ); // get first model
    $view  = $this->getView  ( 'user', 'html'  ); // get view we want to use
    $view->setModel( $model, true );  // true is for the default model  
    $billsModel = &$this->getModel ( 'bills' ); // get second model     
    $view->setModel( $billsModel );             
    $view->display(); // now our view has both models at hand           
}

ビューでは、モデルに対して簡単に操作を行うことができます

function display($tpl = null){              
    $userModel = &$this->getModel(); // get default model
    $billsModel = &$this->getModel('bills'); // get second model

    // do something nice with the models

    parent::display($tpl); // now display the layout            
}

代替アプローチ

ビューでモデルを直接ロードします。

function display($tpl = null){
 // assuming the model's class is MycomponentModelBills 
 // second paramater is the model prefix    
        $actionsModel = & JModel::getInstance('bills', 'MycomponentModel'); 
}
于 2011-08-31T16:39:18.897 に答える