【问题标题】:joomla loadformdatajoomla 加载表单数据
【发布时间】:2012-10-17 06:35:03
【问题描述】:

如何在一个视图中显示 3 个表中的数据,因为使用 JTable 我只能显示绑定到该 JTable 的数据,请帮我解决这个问题。

到目前为止我的代码(不工作)在模型中:

public function getEntireProject(){
    $item_id = $this->getItem()->id;

    $db =& JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('*');
    $query->from('#__project_part_1 AS a');
    $query->leftJoin('#__project_part_2 AS u ON a.uuid = u.uuid');
    $query->leftJoin('#__project_part_3 AS y ON a.uuid = y.uuid');
    $query->where('a.id = '. (int) $item_id);
    $db->setQuery($query);
    return $db->loadResult();
}

protected function loadFormData()
{
    // Check the session for previously entered form data.
    $data = JFactory::getApplication()->getUserState('com_web_projects.edit.webproject.data', array());

    if (empty($data)) {
        $data = $this->getEntireProject();
    }

    return $data;
}

【问题讨论】:

  • 你在 $data 中得到了什么?
  • 在 $data 中有来自查询 getEntireProject 的结果
  • 它应该像 Dasun 建议的那样使用 loadAssocList() 而不是 loadResult。

标签: joomla joomla2.5


【解决方案1】:

尝试覆盖 getItem 函数。如果您在视图中调用 get('Item'),这也会很有帮助。 -

public function getItem($pk = null){
    if ($item = parent::getItem($pk)) {
        $db =& JFactory::getDBO();
        $query = $db->getQuery(true);
        $query->select('*');
        $query->from('#__project_part_1 AS a');
        $query->leftJoin('#__project_part_2 AS u ON a.uuid = u.uuid');
        $query->leftJoin('#__project_part_3 AS y ON a.uuid = y.uuid');
        $query->where('a.id = '. (int) $item->id);
        $db->setQuery($query);          
        $item =  $db->loadAssoc();
    }   
    return $item;
}

protected function loadFormData()
{
    // Check the session for previously entered form data.
    $data = JFactory::getApplication()->getUserState('com_web_projects.edit.webproject.data', array());

    if (empty($data)) {
    $data = $this->getItem();
    }

    return $data;
}

【讨论】:

  • 好的,我得到了我刚刚使用 loadAssoc() 的数据并且解决了问题
【解决方案2】:

对于多行结果,请使用 loadRowList()、loadAssocList()、loadAssocList($key)、loadObjectList()、loadObjectList('key')。 $db->loadResult() 只加载一个结果。 Read more

如果我正确理解您的问题,这应该可以解决您的问题。如果你没有,请询​​问。

【讨论】:

  • 我有 3 个表,例如 a、b、c,在管理视图中我有 1 个视图显示表 a 中的数据,我想显示表 a、b、c 中的数据,但我没有不知道该怎么做
  • 对我来说很好。你能更具体点什么问题吗?
猜你喜欢
  • 2014-02-14
  • 2011-11-30
  • 1970-01-01
  • 2019-07-29
  • 2018-11-19
  • 1970-01-01
  • 2011-04-22
  • 2018-02-25
  • 2012-02-10
相关资源
最近更新 更多