【问题标题】:Severity notice: Undefined variable - images_model严重性通知:未定义的变量 - images_model
【发布时间】:2019-01-11 15:08:49
【问题描述】:

此代码在 images_model 下的“图像”视图中运行良好:

<?php if($images_model):?>
    <?php foreach($images_model as $images):?>
        <div class="col-sm-4">
            <div class="well">

                <img src="<?php echo base_url()."uploads/".$images->name;?>" alt="" class="img-thumbnail">  

images_model中的代码如下:

function save_image($data){     
    $this->db->insert('images', $data);
}

当我尝试在“墙”视图 (main_controller) 中使用相同的代码时,我收到严重通知错误,提示“images_model”未定义;即使我在 main_controller 中加载 images_model 或自动加载这两个模型:

$autoload['model'] = array('main_model', 'images_model');

我最初质疑“图像”视图中的“foreach”代码,但我认为如果它在一个视图中工作,如果我加载相关模型,它不应该在另一个视图中工作吗?它似乎没有读取 images_model。

我刚刚开始了解 codeigniter,如果有任何反馈,我将不胜感激。

【问题讨论】:

  • 将 images_model 全部更改为 Images_model。
  • @AbdulAhmadMatin 谢谢,但它不起作用。如果我在“图像”视图中更改它,它会在正常之前给我那个错误。
  • 新的错误是什么?
  • @AbdulAhmadMatin 未定义变量。同样的错误。
  • 它必须是这样的$autoload['model'] = array('Main_model', 'Images_model'); 并且您的文件模型名称第一个字母必须是大写并且将您的模态名称从class images_model extends CI_Model更改为class Images_model extends CI_Model

标签: codeigniter undefined-variable


【解决方案1】:

您是否将 $images_model 变量从您的 main_controller 传递到您的视图?

// Set your variable
$data['images_model'] = $images_model;

// Pass variable to view
$this->load->view('main', $data);

您通常不应直接在视图中访问模型(遵循 MVC 原则)。你的控制器应该从模型中得到它想要的东西,然后将它传递给视图。

【讨论】:

  • Erick,使用我在下面添加的新代码行获取未定义的 images_model。您引用的视图将是 main_controller 下的“墙”。好点虽然我认为可以解决它。但我会继续检查。谢谢!公共函数索引($page='wall') { $data = $this->session->userdata; $data['images_model'] = $images_model; $this->load->view($page, $data); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-04
相关资源
最近更新 更多