Php 从模型调用方法时,我的视图文件出错

Php 从模型调用方法时,我的视图文件出错,php,codeigniter,model,Php,Codeigniter,Model,这是我的视图文件中的代码,它显示了我突出显示的行号上的错误。错误是“致命错误:在E:\xampp\htdocs\Santulan\application\views\endusers\header.php第158行的非对象上调用成员函数get\u end\u user\u cms\menu()”首先,必须调用$this->load->model('cms\u model')在控制器中,而不是在视图中。 然后,在控制器中,而不是在您的视图中,您可以执行以下操作: <div c

这是我的视图文件中的代码,它显示了我突出显示的行号上的错误。错误是“致命错误:在E:\xampp\htdocs\Santulan\application\views\endusers\header.php第158行的非对象上调用成员函数get\u end\u user\u cms\menu()”

首先,必须调用
$this->load->model('cms\u model')在控制器中,而不是在视图中。
然后,在控制器中,而不是在您的视图中,您可以执行以下操作:

        <div class="collapse navbar-collapse" id="navbar-collapse-1">
            <ul class="nav navbar-nav">
                <?php
                $this->load->model('cms_model');
                if (isset($article_data)) {

                } else {
                    $article_data = $this->cms_model->get_end_user_cms_menu(); (this line gives error)
                }
                 foreach ($article_data as $row) { ?>
                    <li class="dropdown">  <a href='<?php echo site_url('endusers/end_cms_controller/cms_type_selected?type_id=' . $row->type_id) ?>'>
                    <?php echo $row->type_name; ?>
                        </a> </li>
                <?php } ?>

            </ul>
            <div class="nav-search-wrap">
                <input class="txt-search" type="text" name="search" placeholder="Search">
            </div>
        </div><!-- /.navbar-collapse -->
在你看来:

$this->load->view('your_viwe', $data);


还有一个问题:问题出在控制器内部。我发布了更正后的版本和解释性意见:

<div class="collapse navbar-collapse" id="navbar-collapse-1">
            <ul class="nav navbar-nav">
            <?php echo $list;?> 
            </ul>
            <div class="nav-search-wrap">
                <input class="txt-search" type="text" name="search" placeholder="Search">
            </div>
        </div>   
公共功能索引(){
$str=$this->input->post('search');
$search\u id=$this->cms\u model->search\u tag\u id($str);
//echo$id=$search\u id;->您不能回显$search\u id,因为它是一个数组:$query->result()来自search\u tag\u id()模型函数。
//$query->result()始终是一个数组
//对于调试:当您想查看$query->result()内部时,请使用:echo“”。打印($query->result(),true)。“”;
//相反,您使用:
$id=$search\u id->article\u id;
$search\u data['article']=$this->cms\u model->search\u article($id);//用于搜索文章的函数
如果($search\u data){
$this->load->view('endusers/cms_view',$search_data);//如果在视图中调用$article和$article_图像,则这是可以的
}否则{
回显“未找到结果”;
}   
}

可能您尚未在控制器中加载模型。给我们一些来自模型的代码。你不能在视图中加载模型。这是严格禁止的,因为这破坏了MVC。在控制器中加载模型并将数据传递给视图。这是来自模型公共函数get_end_user_cms_menu(){$query=“SELECT*from cms_types”;$result=$This->db->query($query);return$result->result();}的代码。请帮助我,我是这个mvc模式的新手。该函数的调用是加载标题中的菜单。php@HemantRandive实际上,您可以在CI中打破MVC模式,但实际上这不是一个很好的方法,因为它从一开始就不是这样工作的。。但若你们真的想这么做,我想在杂货店的积垢代码点火器里放一张纸条。显示列时如何添加请详细说明。说得更清楚些。尽可能多的细节,这样我就能理解问题了;当它显示列时,我想在那里添加一个注释,当用户上传图像时只上传特定大小的图像。请参阅本文:我在这个数组上得到错误,转换为字符串$search\u id['article\u id']=$this->cms\u model->search\u tag\u id($str);公共函数搜索_tag_id($str){$qry=“从“%$str%”等标记所在的文章中选择文章_id”;$query=$this->db->query($qry);返回$query->result();}
<div class="collapse navbar-collapse" id="navbar-collapse-1">
            <ul class="nav navbar-nav">
            <?php echo $list;?> 
            </ul>
            <div class="nav-search-wrap">
                <input class="txt-search" type="text" name="search" placeholder="Search">
            </div>
        </div>   
 public function index(){
        $str=$this->input->post('search'); 
        $search_id=$this->cms_model->search_tag_id($str);      
        //echo  $id= $search_id; -> you cannot echo $search_id becouse it's an array: $query->result() from search_tag_id() model function.
        //$query->result() is allways an array
        //FOR DEBUGGING: when you want to see inside $query->result(), use: echo '<pre>'.print_r($query->result(), true).'</pre>';
        // instead you use:
        $id = $search_id->article_id;
        $search_data['article']=$this->cms_model->search_article($id);// function for search article
        if($search_data){
            $this->load->view('endusers/cms_view', $search_data); // this is ok, if you call for $article and $article_image inside the view
        }else{
            echo "No result found";
        }   
    }