如何在Codeigniter中从控制器传递模型中的数组数据

时间:2018-06-12 12:41:52

标签: php codeigniter

  

致命错误:未捕获ArgumentCountError:参数太少   函数Articlesmodel :: update_article(),0传递

这是我的模特

articlesmodel.php

function update_article($article_id,Array $article){

    return $this->db
            ->where('id',$article_id)
            ->update('articles',$article);
}

这是我的控制器

admin.php的

function update_article(){
    print_r($this->input->post());
    $this->load->model('articlesmodel');
    $update_articles=$this->articlesmodel->update_article();
    if($update_articles){

    }
}

3 个答案:

答案 0 :(得分:1)

在你的模型中,你接受2个参数,但你不是从控制器发送它们。只需将2个参数从控制器发送到模型,它就可以正常工作

在模型中

update_article($article_id,Array $article)
控制器中的

update_article($MISSING,$MISSING)

答案 1 :(得分:1)

function update_article($article_id,$article){

        $this->db->trans_start();
        $this->db->where('id', $article_id);
        $this->db->update('articles', $article);
        $this->db->trans_complete();
        return TRUE;
}

希望这会对你有所帮助

答案 2 :(得分:0)

最后我解决了我的问题。这是问题所在, $ post 我无法在$post=$this->input->post();以下的函数中传递此变量

`

**before fixing  error the was problem here**

`function update_article(){
        print_r($this->input->post());
        $this->load->model('articlesmodel');
        $update_articles=$this->articlesmodel->update_article();
        if($update_articles){

        }

}`

修正错误后代码为。

function update_article(){
                       print_r($this->input->post());
                       $this->load->model('articlesmodel');
                       $post=$this->input->post();
                      $update_articles=$this->articlesmodel->update_article($article_id,$post);
                       if($update_articles){

                       }
                   }

我没有在控制器中删除 $ post 而未在Controller $update_articles中传递 2 param

$update_articles=$this->articlesmodel->update_article($article_id,$post)之后

$update_articles=$this->articlesmodel->update_article();之前