【问题标题】:Not able to access parameter sent from Controller to Model in CodeIgniter在 CodeIgniter 中无法访问从控制器发送到模型的参数
【发布时间】:2015-04-22 19:59:59
【问题描述】:

我有一个控制器,我试图在其中将关联数组传递给我的模型,然后它将获取该数组并将其插入到我的数据库中。但是,当我将数组 $finalResults 传递给模型并尝试在其中访问 foreach 语句时,我收到第一个 foreach 语句中指示的“为 foreach() 提供的参数无效”的错误。我还是 codeIgniter 的新手,所以我不确定是什么原因造成的。

我的控制器:

class Test extends CI_Controller {

    public function getResults(){

        $this->load->model('Test_model');
        $this->load->database();

        $finalResults = $this->input->post('answers');

        $data['finalResults'] = $finalResults;

        $this->Test_model->processResults($finalResults);
    }
}

我的模特:

class Test_model extends CI_Model{

  public function processResults($finalResults){

      foreach ($finalResults as $question){
          foreach($question as $key => $value){
             $data_to_insert = array(
               $key => $value
             );
           }
       }
       $this->db->insert('result', $data_to_insert);
   }
}

我知道这与一个完整的解决方案相去甚远,但这个错误让我无法再进一步。对此的任何帮助表示赞赏!提前致谢!

【问题讨论】:

    标签: php codeigniter model-view-controller


    【解决方案1】:

    您能否尝试确认您确实将关联数组传递到foreach 循环中?

    在循环之前为is_array() 添加条件检查。

    if(is_array($finalResults))
        foreach($finalResults as $question){
            ....
        }
    }
    

    【讨论】:

    • 这就是问题所在。在将其转发之前,我忘记对来自 ajax 的输入进行 json_decode。感谢您的帮助!现在,如果我能让插入工作...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2016-06-12
    • 2021-01-15
    • 2013-12-16
    相关资源
    最近更新 更多