Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CodeIgniter视图5中的未定义变量_Php_Codeigniter - Fatal编程技术网

Php CodeIgniter视图5中的未定义变量

Php CodeIgniter视图5中的未定义变量,php,codeigniter,Php,Codeigniter,我正在学习CodeIgniter,我被这个错误卡住了。 $categories可以,但是当我想查看$national时,我有一个错误 消息:未定义变量:国籍 文件名:pages/add_recipe.php 添加_recipes.php <?print_r($categories);?> <?print_r($nationality);?> 模型 public function get_nationality($conditions=null,$limit=null,$

我正在学习CodeIgniter,我被这个错误卡住了。
$categories
可以,但是当我想查看
$national
时,我有一个错误

消息:未定义变量:国籍

文件名:pages/add_recipe.php

添加_recipes.php

<?print_r($categories);?>
<?print_r($nationality);?>
模型

public function get_nationality($conditions=null,$limit=null,$offset=0,$order=null){
        if($conditions!=null){
            $this->db->where($conditions);
        }
        if($order!=null) {
            $this->db->order_by($order);
        }
        $query = $this->db->get('nationality',$limit,$offset);
        return $query->result();
    }

public function get_categories($conditions=null,$limit=null,$offset=0,$order=null){
        if($conditions!=null){
            $this->db->where($conditions);
        }
        if($order!=null) {
            $this->db->order_by($order);
        }
        $query = $this->db->get('categories',$limit,$offset);

        foreach($query->result_array() as $row ){
            if(!$row['parent_id']){ 
                $data[$row['id']][] = $row['title']; 
            }else {
                $data[$row['parent_id']]['sub'][$row['id']] = $row['title']; 
            }
        }
        return $data;
    }

事实证明,该页面是从另一个控制器调用的,与名称混淆

当您在“模型”中显示代码时,这两种方法位于两个单独的模型文件中,对吗
get_nationality()
在您的
model_path/nationality_model.php
get_categories()
model_path/categories_model.php
中?是的,它们在两个单独的模型文件中只是一个想法,如果您切换名称会发生什么?模型文件的名称?我怀疑来自表'National'的请求返回一个空数组,但无法理解为什么。。。数据库中的表已满谢谢,我尝试了您推荐的,以前也尝试过,但它无法解决问题。请检查$this->load->view('templates/header')之前控制器函数上的$data数组“print_r($data);”;当我选中“是”时,什么也没有发生,但在视图中显示了一个数组并导致错误。请在控制器文件中尝试:替换此:$data['national']=$this->national\u model->get\u national();使用$res=$this->Nationality\u model->get\u Nationality();echo$res;死(‘这里’)$数据['国籍]=$res;谢谢你的帮助,我发现了问题!
public function get_nationality($conditions=null,$limit=null,$offset=0,$order=null){
        if($conditions!=null){
            $this->db->where($conditions);
        }
        if($order!=null) {
            $this->db->order_by($order);
        }
        $query = $this->db->get('nationality',$limit,$offset);
        return $query->result();
    }

public function get_categories($conditions=null,$limit=null,$offset=0,$order=null){
        if($conditions!=null){
            $this->db->where($conditions);
        }
        if($order!=null) {
            $this->db->order_by($order);
        }
        $query = $this->db->get('categories',$limit,$offset);

        foreach($query->result_array() as $row ){
            if(!$row['parent_id']){ 
                $data[$row['id']][] = $row['title']; 
            }else {
                $data[$row['parent_id']]['sub'][$row['id']] = $row['title']; 
            }
        }
        return $data;
    }
Can you please update the Nationality model function get_nationality with this, try it...

public function get_nationality($conditions=null,$limit=null,$offset=0,$order=null){
        if($conditions!=null){
            $this->db->where($conditions);
        }
        if($order!=null) {
            $this->db->order_by($order);
        }
        $query = $this->db->get('nationality',$limit,$offset);
        if ($query->num_rows() > 0) {
            foreach ($query->result() as $row) {
                $data[] = $row;
            }
            return $data;
        }
        return false;
    }