【问题标题】:CODEIGNITER undefined indexCODEIGNITER 未定义索引
【发布时间】:2013-10-18 05:58:02
【问题描述】:

:D 这里有一些问题

错误代码

遇到 PHP 错误

严重性:通知

消息:未定义索引:描述

文件名:views/dashboard_view.php

行号:13

控制器:

 function index()
 {
   if($this->session->userdata('logged_in'))
   {
     $session_data = $this->session->userdata('logged_in');
     $data['username'] = $session_data['USERNAME'];
     $data['companyid'] = $session_data['COMPANYID'];
     $data['category']=$this->main_model->get_category();
     $this->load->view('dashboard_view', $data);


   }
   else
   {
     //If no session, redirect to login page
     redirect('main', 'refresh');
   }
 }

型号

 function get_category(){
$this->db->select('*');
$this->db->from('view_category');
$category=$this->db->get();
return $category->result();
}

查看

<h2>Welcome <?php echo $username; ?>!</h2>
<?= form_hidden ($companyid); ?>
<br>
<a href="login/logout">Logout</a>
<? foreach($category ):?>
<tr>

    <td><?= $category['DESCRIPTION']; ?></td><-- this is line 13
</tr>

<? endforeach;?>

【问题讨论】:

  • 请 var_dump() $category->result();
  • 得到这个错误致命错误:在非对象上调用成员函数 result()
  • 那么你的 $this->db->get() (var_dump() 那个)出了点问题。此外,var_dump a $this->db->last_query() 在方法的末尾(返回之前)
  • 你确定$category 是一个数组而不是一个对象吗?通常(我的)模型返回对象或对象数组。在这种情况下,您可能会收到$category-&gt;DESCRIPTION
  • 你确定索引是DESCRIPTION 而不是description 因为它是你从数据库中获取的列名

标签: php codeigniter


【解决方案1】:

请按照以下步骤操作:-

  • 检查您的模型是否正确加载。在调用它之前手动加载它,或者您可以在 config/autoload 文件中自动加载模型。

  • 在视图文件中循环浏览您的类别之前,请尝试打印数组。我认为您的类别数组中没有名为 description 的索引。

  • 改变:-

    $category->result(); 
    

    到:-

    $category->result_array();
    
  • 还有:-

    <td><?= $category['DESCRIPTION']; ?></td>
    

    到:-

    <td><?php echo $category['DESCRIPTION']; ?></td>
    

希望对你有帮助:)

【讨论】:

  • 我做了你所有的建议,并尝试打印数组并得到结果,但它不会在视图中打印。
  • @mabbs ...请回显您要显示的内容我已编辑答案
【解决方案2】:

你的 foreach 应该是这样的:

<?php foreach($category as $rows): ?>
                      ^^^ add this

然后通过这个获取数据:

<td><?php echo $rows['DESCRIPTION']; ?></td>

您还可以检查它返回的内容是否只需在 foreach 循环中执行 print_r($rows);

注意:避免使用 PHP 的排序标签,因为很多服务器不支持。

【讨论】:

  • @mabbs 你需要先在控制器上制作模型的对象才能调用模型的功能。首先创建obj。
【解决方案3】:

您是否尝试过在使用前加载模型?

示例:$this-&gt;load-&gt;model('main_model');

【讨论】:

    猜你喜欢
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 2013-06-30
    • 2018-07-07
    • 2015-01-19
    相关资源
    最近更新 更多