【问题标题】:Message: Undefined property: stdClass::$Date using codeigniter消息:未定义的属性:stdClass::$Date 使用 codeigniter
【发布时间】:2014-03-07 14:44:12
【问题描述】:

我的代码运行良好,但我收到此错误消息:未定义的属性:stdClass::$Date 并且我不知道此错误来自哪里,据我所知我的代码是正确的。问题出在我的 foreach 代码中 下面是我的控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
session_start();

class News_and_events extends CI_Controller {
  public function __construct(){
      parent::__construct();
      $this->load->library('form_validation');
      $this->load->model('admin_model', 'am');
  }

  public function index(){
    if($this->session->userdata('logged_in')){
      $this->data['title'] = 'News and Events | Spring Rain Global Consultancy Inc Admin Panel';
      $this->data['logout'] = 'Logout';

      $session_data = $this->session->userdata('logged_in');
      $this->data['id'] = $session_data['id'];
      $this->data['username'] = $session_data['username'];

      $this->data['allData'] = $this->am->getAllData();


      $this->load->view('pages/admin_header', $this->data);
      $this->load->view('content/news_and_events', $this->data);
      $this->load->view('pages/admin_footer');
    }else{
      redirect('login', 'refresh');
    }
  }
}

我的模特

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

Class Admin_model extends CI_Model{
    public function saveData($array){
      $this->db->insert('news_and_updates', $array);
    }

    public function getAllData(){
      return $this->db->select(
                          'news_and_updates.Event',
                          'news_and_updates.Description',
                          'news_and_updates.Date'
                        )
                  ->from('news_and_updates')
                  ->order_by("Date", "desc")
                  ->get()->result_object();
    }
}
?>

我的看法

<script type="text/javascript">
  $(document).ready(function(){
    $("#add_another").click(function(){
      alert('test');
    });
  });
</script>
 <div class="container" >
    <br />
    <br />
    <br />
    <ul id="nav">
     <li><a href="<?php echo base_url().'homepage'?>" title="Home"><h4>Home</h4></a></li>
     <li><a href="<?php echo base_url().'news-and-events'?>" title="News and Events"><h4>News and Events</h4></a></li>
     <li><a href="" title="Activities"><h4>Activities</h4></a></li>
    </ul>
    <div class="starter-template">
      <h1>News And Events</h1>
      <?php if($this->session->flashdata('add_another')):?>
        <div id="add_another" style="float:left;">
            <input  type="button" value="Add Another" class="btn btn-primary" />
          </div>
       <?php else: ?>
         <form action="<?php echo base_url().'news-and-events/add'?>" method="post">
           <?php echo validation_errors('<div class="error">', '</div>');?>
          <table class="table-striped">
            <tr>
              <td>Date: </td>
              <td><input type="text" id="datepicker" name="date" value="<?php echo set_value('date');?>" /></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td >Event: </td>
              <td ><input  type="text" name="event" value="<?php echo set_value('event');?>" /></td>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td width="20%">Description: </td>
              <td><textarea cols="30" rows="5" name="description" ><?php echo set_value('description');?></textarea></td>
            </tr>
             <tr>
              <td width="20%">&nbsp;</td>
              <td><input type="submit" value="Add" class="btn btn-success" /></td>
            </tr>
          </table>
        </form>
        <?php endif; ?>
      <br />
      <br />
      <table class="table" >
        <tr>
          <th>Date</th>
          <th width="51%">Event</th>
          <th>Description</th>
          <th>Options</th>
        </tr>
        <?php foreach($allData as $x => $allDatas): ?>
        <tr>
          <td><?php echo $allDatas->Date; ?></td>
          <td><?php echo $allDatas->Event; ?></td>
          <td></td>
          <td></td>
        </tr>
        <?php endforeach; ?>
      </table>
    </div>

  </div><!-- /.container -->

<script> 
      var date = new Date();
      var currentMonth = date.getMonth();
      var currentDate = date.getDate();
      var currentYear = date.getFullYear();

      $('#datepicker').datepicker({
        minDate: new Date(currentYear, currentMonth, currentDate),
        dateFormat: "yy-mm-dd"
      });

</script>

在我的 foreach 代码中,错误是这个 $allDatas->Date;它说消息:未定义的属性:stdClass::$Date 这就是我的表 Date 中的字段名称 有人可以帮我解决这个问题吗? 任何帮助深表感谢!谢谢!找不到错误

【问题讨论】:

  • 在控制器中转储 $this->data['allData'] - 输出是什么?
  • 我试图打印_r 它没有日期
  • 回显 $this->db->last_query() 的结果以确保您的查询正确
  • 我会在哪里回显它?
  • 在您的模型或控制器中 - 在执行 getAllData 方法之后

标签: codeigniter


【解决方案1】:

在您的模型或控制器中 - 在执行 getAllData 方法之后:

echo the result of $this->db->last_query()

在您的数据库中手动执行返回的查询,然后修复您的查询

【讨论】:

  • 嗨,现在可以了,感谢 cmets 我将查询更改为这个返回 $this->db->get('news_and_updates') ->result_object();
  • 我将如何添加订单??
  • 如果您使用您在@Patrick 的 cmets 中提出的 get 方法,请在此之前添加:$this->db->order_by("Date", "desc");
【解决方案2】:

随着 cmets 的启动,问题是 Date 不是从查询中生成的,这意味着该级别有问题,而不是输出本身。

确保查询是正确的,在直接从控制器加载视图之前转储它以查看它得到了什么,如果它没有得到一个日期,你的问题在其他地方,可能在查询本身。

【讨论】:

  • 啊,我明白了,你能检查我的查询吗?对吗?
  • 您是正确的,我的型号代码查询有问题,这就是它有错误的原因
  • 我把它改成这个查询 return $this->db->get('news_and_updates') ->result_object();
  • 感谢 m79lkm,我看到问题已解决,不要忘记将问题标记为已回答 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 2019-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多