問題:如何插入從數據庫表(#__mytable)值成已從是Joomla 3.0平臺中的一個XML文件中呈現形式的文本字段(motitle
和modescription
)?插入dB值到表單域
-
我一直在嘗試了幾天解決這個 「簡單」 的Joomla!基於無證件的挑戰。 我遵循Joomla!'s guide for Developing an MVC,閱讀了大部分已過時的文檔,並拆除了com_content
組件,但仍然不知道如何填充我的字段。我一直在玩$this->form->bind($this->item);
。
下面我已經包含了一些我的代碼來顯示我正在使用的結構。請隨時指出您發現的任何問題。
模型\ \形式item.xml
<?xml version="1.0" encoding="UTF-8"?>
<form>
<fields name="groupOPTIONS">
<fieldset name="Options">
<field
type="text"
name="motitle"
id="motitle"
label="Title"
description="MY TEXT FIELD DESCRIPTION"
maxLength="255" />
<field
type="textarea"
name="modescription"
id="modescription"
label="Description"
description="MY TEXT FIELD DESCRIPTION"
rows="15"
cols="5"
maxLength="255" />
</fieldset>
</fields>
</form>
型號\ item.php
jimport('joomla.application.component.modelitem');
class MagicObjectsModelItem extends JModelForm {
public function getForm($data = array(), $loadData = true) {
// Get the form 'items'
$form = $this->loadForm('com_magicobjects.item', 'item',
array('control' => 'jform', 'load_data' => $loadData));
if (empty($form)) {
return false;
}
return $form;
}
protected function loadFormData() {
// Check the session for previously entered form data.
$data = JFactory::getApplication()->getUserState('com_magicobjects.item.edit.data', array());
if (empty($data)) {
$data = $this->getDBItem(1);
}
return $data;
}
public function getDBItem($pk) {
//Obtain JDatabase static connection
$oDb = JFactory::getDbo();
$oQuery = $oDb->getQuery(true);
$sValueToMatch = $pk;
$oQuery
->select(array('mid', 'name', 'keyword', 'description'))
->from('#__mytable')
->where('mid = "' . $sValueToMatch . '"')
->order('mid ASC');
$oDb->setQuery($oQuery);
return $oDb->loadObjectList();
}
意見\項目\ view.html.php
jimport('joomla.application.component.view');
function display($tpl = null) {
// Initialise variables.
$this->form = $this->get('Form');
$this->item = $this->get('Item');
//Display the view
parent::display($tpl);
}
查看\項目\ TMPL \如default.php
foreach ($this->form->getFieldset('Options') as $field) {
echo $field->label;
echo $field->input;
}
通過對項目執行的print_r()我可以看到我有數據,但我需要將數據插入到顯示的字段。在getDBItem()
功能
你用'loadFormData'功能到您的模型? – Toretto
@Tornado謝謝,我已經將loadFormData添加到了我的模型中,之前我刪除了它,因爲它似乎沒有多大作用。我還將它包含在上面的代碼示例中(以及db獲取函數)。 –
現在工作嗎? – Toretto