我根据mvc结构为joomla创建了组件。我在视图中有一些变量,并希望通过model将该变量保存到数据库中。我的文件结构:
-models
--contact.php
-views
--contact
---tmpl
----default.php
----default_comajax.php
---view.ajax.php
---view.html.php
我的变量在view.ajax.php中,我想在contact.php中保存这个变量。 我的观点.ajax.php
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.view');
class contactfViewcontactf extends JViewLegacy
{
function display($tpl = null)
{
$name = "test";
$this->get('Msg');
parent::display(comajax);
}
}
和我的contact.php是
<?php
defined('_JEXEC') or die('Restricted access');
jimport('joomla.application.component.modelitem');
class contactfModelcontactf extends JModelItem
{
public function getMsg()
{
$db =& JFactory::getDBO();
$query = "INSERT INTO #__rtuyds (email) VALUES ('$name')";
$db->setQuery($query);
$db->query();
}
}
如何在contact.php中获取访问$ name? 数据库查询执行并在表中插入一个新行,但新行为空,并且不保存$ name。
答案 0 :(得分:1)
如果我理解你想要的东西,你需要做以下事情:
使用Lodder的查询修改模型,并在getMsg()方法中添加输入:
public function getMsg($nameValue)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->insert($db->quoteName('#__rtuyds'))
->columns($db->quoteName('email'))
->values($db->quote($nameValue));
$db->setQuery($query);
$db->query();
}
然后在视图的显示方法中执行以下操作:
function display($tpl = null)
{
$name = "test";
$model = $this->getModel();
$model->getMsg($name);
parent::display(comajax);
}
答案 1 :(得分:0)
尝试使用以下内容作为更新查询:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->insert($db->quoteName('#__rtuyds'))
->columns($db->quoteName('email'))
->values($db->quote($name));
$db->setQuery($query);
$db->query();