【问题标题】:Pass data to model from controller in codeigniter在 codeigniter 中将数据从控制器传递到模型
【发布时间】:2017-11-13 05:26:41
【问题描述】:

我正在使用 post 方法从视图中获取数据,即在 $data 变量中 我需要传递这个,即 $data 到我尝试过的模型,如下所示,但它显示为 A PHP

遇到错误严重性:通知消息:未定义的属性: Post::$data 文件名:core/Model.php 行号:77

下面是我的代码:

Array
(
    [name] => Mohan
    [email] => mohan@gmail.com
    [phone] => 9739764966
    [location] => TEST
    [website] => 192.168.1.156
    [useragent] => Chrome
    [ipaddress] => 192.168.1.23
    [desc] => Bengaluru
    [captcha] => 20701449
    [captcha_word] => 20701449
    [submit] => Submit
)

控制器:

public function postEnquiry()
{
    $data = $this->input->post();
    // echo "<pre>";print_r($data);die;
    $this->load->model('Enquiry');
    $result = $this->Enquiry->sendenquiry($data);
    if($result){
        $this->session->set_flashdata('success','Sent Successfully');
        redirect(ROOT_PATH."/form");
    }

}

型号:

<?php
class Enquiry extends CI_Model {

    public function __construct()
    {
        parent::__construct();
        $this->load->database();
    }

    public function sendenquiry($data)
    {
        print_r($data);die;
    }

}
?>  

【问题讨论】:

  • 你遇到了什么错误?
  • @JayZamsol Like 'A PHP Error was seen Severity: Notice Message: Undefined property: Post::$data Filename: core/Model.php Line Number: 77'
  • 我知道是什么问题,现在它工作正常,谢谢。

标签: php codeigniter-3


【解决方案1】:

必须先在autoload.php中加载db库

$autoload['libraries'] = array('database');

希望对你有帮助

【讨论】:

    【解决方案2】:

    首先,您必须定义变量,然后将 post 值分配给变量并传递参数,

    public function postEnquiry()
    {
        $this->load->model('Enquiry');
        $data = array();
        $data = $this->input->post();       
        $result = $this->Enquiry->sendenquiry($data);
        if($result){
            $this->session->set_flashdata('success','Sent Successfully');
            redirect(ROOT_PATH."/form");
        }
    }
    
    (OR)
    
    // You can get post values from model directly
    // 1.Controller
    public function postEnquiry()
    {
        $this->load->model('Enquiry');
        $result = $this->Enquiry->sendenquiry();
        if($result){
            $this->session->set_flashdata('success','Sent Successfully');
            redirect(ROOT_PATH."/form");
        }
    }
    
    // 2.Model
    public function sendenquiry()
    {
      echo '<pre>'; print_r($this->input->post()); echo '</pre>'; //post values
    }
    

    【讨论】:

      【解决方案3】:

      你需要在 autoload.php 中加载你的数据库库:

      $autoload['libraries'] = array('database');

      另外,在构造函数或函数中加载模型,如下所示:

      $this->load->model('User');
      

      在这里查看类似的问题codeigniter model error: Undefined property

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-27
        • 2012-11-04
        • 2011-12-21
        • 1970-01-01
        • 1970-01-01
        • 2012-12-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多