0

我想在数据库中插入数据但它显示错误

致命错误:在第 9 行的 \components\com_enquiry\views\form\view.html.php 中的非对象上调用成员函数 getform()

我的代码是:enqiry.php:

public function getform($data)
{
    $db=JFactory::getDbo();
    $db=$this->getDbo();
    $query=$db->getQuery(true);
    $reg=new stdClass();
    $reg->name=$data['name'];
    $reg->email=$data['email'];
    $reg->phone=$data['phone'];
    $reg->comments=$data['comments'];
    $reg=$db->insertObject('#__enquiry',$reg);
}

和 view.html.php:

public function display()
{
    $this->msg = 'enquiry form';
    $model=$this->getModel(); 
    $data =$model->getform();
    $this->assignRef('data', $data );
    parent::display();
    parent::display();
}

控制器:

     class enquiryController extends JControllerLegacy
      {
      public function display()
       {
         $vname=JRequest::getCmd('view','form');
         JRequest::setVar('view',$vname);
         JRequest::setVar('layout','default');  
         parent::display();
       }

     public function show()
     {
    $data['name']=$_POST['name'];
    $data['email']=$_POST['email'];
    $data['phone']=$_POST['phone'];
        $data['comments']=$_POST['comments'];
    $sname=JRequest::getCmd('view','thanx');    
    JRequest::setVar('view',$sname);
    print_r($data);
     }
   }

有人可以帮我解决这个错误吗?

4

1 回答 1

0

问题是您的模型未按以下行加载:

$model=$this->getModel();

这要么意味着您在 enquiry.php 中的模型未正确命名

ComponentNameModelEnquiry

或者说你的观点没有命名查询。

您可以尝试指定您想要的模型,例如

$model = $this->getModel('enquiry');
于 2013-09-20T08:38:43.600 回答