+ Antworten
Ergebnis 1 bis 3 von 3

Thema: Mehrere Models in der view.html.php instanzieren

  1. #1
    Neu an Board
    Registriert seit
    16.03.2009
    Ort
    Nordkirchen
    Beiträge
    32
    Bedankte sich
    14
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Unglücklich Mehrere Models in der view.html.php instanzieren

    Hallo Forum,
    mach mehreren Stunden vergeblichen recherchierens im Internet hier meine Problem:

    ich muss in der view.html.php, Daten mehrerer Models abrufen.

    Aus dem Internet habe folgenden Code:

    controller.php
    PHP-Code:
    class xxxControllerxxx extends JController
    {
        function 
    __construct()
        {
            
    parent::__construct();
            
            
    // Register Extra tasks
            
    $document =& JFactory::getDocument();
            
    $viewName JRequest::getVar('view''{name_des_views}');
            
    $viewType $document->getType();
            
    $view = &$this->getView($viewName$viewType);        
            
    $model = &$this->getModel($viewName'{name_des_models}');
            
    $view->setModel($modeltrue);
           }

    FEHLERMELDUNG: Fatal error: Call to a member function getName() on a non-object in C:\xampp\htdocs\entwicklung\libraries\joomla\appli cation\component\view.php on line 449

    ??? nehme ich $view->setModel($model, true); raus, dann kommt keine Fehlermeldung

    view.html.php
    PHP-Code:
    class xxxViewxxx extends JView
    {
        function 
    display($tpl null)
        {        
            
    //Models Quickinfodata
                    
    $model $this->getModel();   // Standardmodel
            
    $xmodel $this->getModel'{name_des_models}' ); // zusätzliches Model
                    
    $ymodel $this->getModel'{name_des_models}' );  // zusätzliches Model
                    
    $zmodel $this->getModel'{name_des_models}' );  // zusätzliches Model
                    
    ...
            }

    Lt. vielen Foreneinträge, sollte das die richtige Lösung sein.
    Leider erhalte ich folgende Meldung:
    Fatal error: Call to a member function get() on a non-object in C:\xampp\htdocs\entwicklung\administrator\componen ts\com_xxx\views\xxx\view.html.php on line 34

    Wer kann mir eine Lösung(Codeschnipsel?) sagen, wo/wie ich mehrere Models in einem view.html.php integrieren kann?

    Vielen Dank,
    Michael

  2. #2
    War schon öfter hier
    Registriert seit
    28.11.2008
    Beiträge
    149
    Bedankte sich
    22
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    So aus dem Bauch heraus:

    Kann es sein, dass das Modell nicht existiert, d.h. Du bekommst durch getModel() in controller.php ein nicht-Objekt zurück?

    Mit gettype() kannst Du das überprüfen.

    J.

  3. #3
    War schon öfter hier
    Registriert seit
    23.09.2009
    Beiträge
    235
    Bedankte sich
    0
    Erhielt 62 Danksagungen
    in 59 Beiträgen

    Standard

    Controller|Display
    PHP-Code:
    $document JFactory::getDocument();
    $viewType $document->getType();
    /**
     *  if no view was found, a default
     *  must be set.
    **/                 
    $viewName JRequest::getVar'view''default_view' );
    $view $this->getView$viewName$viewType );
    /**
     *  model to add to the view's internal pool
     *  of model objects. second param sets the
     *  model as default.
    **/
    $view->setModel$this->getModel'global_model' ), true(optional) ); 
    View
    PHP-Code:
    // fetching results from default model
    $obj_itemA $this->get'Items' );
    // or
    $model $this->getModel();
    $str_itemA $model->getString$param1$param2 );

    // second (global) model
    $obj_itemB $this->get'Items''global_model' );
    // or
    $model $this->getModel'global_model' );
    $str_itemB $model->getString$param1$param2 ); 
    Geändert von Barnum (06.04.2010 um 13:06 Uhr)
    Tell 'em what they want to hear. That will keep them coming back for more. I 've got some for everyone.

  4. Erhielt Danksagungen von:


+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein