从模型到视图的 Joomla 组件数据

Posted

技术标签:

【中文标题】从模型到视图的 Joomla 组件数据【英文标题】:Joomla Component data from model to view 【发布时间】:2012-12-28 10:58:53 【问题描述】:

我第一次在 Joomla 中创建一个组件,现在我很难将模型中的数据调用到我的视图中。我这样做如下:

//在我的模型中

    class InternetModelDefault extends JModel 

      public function test()
        $this->test='test';
      

    

//在我看来

class InternetViewInternet extends JView 
        $model = $this->getModel();
        $test = $model->test();
        var_dump($test);

      // Display the view
        parent::display($tpl);
    


输出给出以下错误:

致命错误:在非对象上调用成员函数 test() /var/websites/www.infrait.nl/content/components/com_internet/views/internet/view.html.php 在第 66 行

哪里出错了?请帮忙..

当前地图结构:http://imgdump.nl/hosted/ad9e57de83060b3240f8fc6bba99237b.png 由于我是新手,我只能分享这个直接链接。

【问题讨论】:

【参考方案1】:

你的model.php像这样

jimport ('joomla.application.component.modellist');
class InternetModelInternet extends JModelList

  public function test()
        $this->test='test';
      

    

并在 view.html.php 中获取模型

    jimport ('joomla.application.component.view');
    class InternetViewInternet extends JView
    
    public function display ($tpl = null)
        

            $model = &$this->getModel ();
             $test = $model->test();
                    var_dump($test);
                 // Display the view
                parent::display($tpl);
        

【讨论】:

仍然无法工作。添加了 & en de modellist.import。同样的错误。 意味着您无法在此处获取模型尝试此链接以手动获取模型***.com/questions/7159536/… 如果您还有任何问题,请告诉我 干得好,你太棒了。谢了!【参考方案2】:

您收到错误是因为对象未正确启动。将类名更改为InternetModelInternet。模型文件名为internet.php

如果它不起作用,请告诉我。

【讨论】:

我将模型类名称从 InternetModelDefault 更改为 InternetModelInternet,还创建了一个新的模型类页面并保持我的默认值。不确定这是否正确? 能否提供更多关于路径、类和文件的信息? 我将在 qeustion 中添加我的地图结构的 PS,它自己的类只需要输出“测试”。该组件本身是一个邮政检查器,供客户显示我们在他们的地区收到了哪些包裹,由 JSON API 处理。 PrintScreen 在一分钟内可用。 希望对您有帮助,img 已上传 从控制器推送信息以查看我使用assignref。模型是否也需要分配?

以上是关于从模型到视图的 Joomla 组件数据的主要内容,如果未能解决你的问题,请参考以下文章

Joomla 组件多视图

如何运行 sql 查询以从不同的 joomla 组件返回数据

Joomla:如何将一种表单用于前端和后端视图?

从 url 中删除 joomla 视图名称和组件名称

在 Joomla 中添加命中计数器

将搜索 DIV 添加到 Joomla 3.0 组件视图时 CSS 丢失