遇到PHP错误严重性:通知消息:未定义属性:CI_Loader :: $ p文件名:Templates / public.php行号:24

时间:2016-05-12 14:20:03

标签: php codeigniter

我已经浏览了这个论坛并尝试了所提供的所有选项,但没有任何对我有用。

我使用一些Codeigniter教程开发了CMS。在我的电脑上一切正常。但是在远程服务器上,它无法正常工作。下面是代码。提前谢谢。

这是视图

目前正在编辑:

目前正在编辑:

负载>查看('模板/头&#39); ?>

<div class="container">

  <!-- Static navbar -->
  <nav class="navbar navbar-default">
    <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="#"><?php echo $this->brand; ?></a>
      </div>
      <div id="navbar" class="navbar-collapse collapse">
        <ul class="nav navbar-nav navbar-right">
          <li><a href="<?php echo base_url(); ?>">Home</a></li>
          <li><a href="<?php echo base_url(); ?>pages/contact">Contact</a></li>
          <?php //$CI =& get_instance(); ?>
          <?php if ($this->p) : ?> //liine 24
            <?php foreach($this->p as $page) : ?>
            <li><a href="<?php echo base_url(); ?>pages/show/<?php echo $page->slug; ?>"><?php echo $page->title; ?></a></li>
            <?php endforeach; ?>
            <?php else : ?>

          <?php endif; ?>

      </ul>


      </div><!--/.nav-collapse -->
    </div><!--/.container-fluid -->
  </nav>

  <!-- Main component for a primary marketing message or call to action -->
  <!-- <div class="well"> -->
    <?php $this->load->view('Templates/slider'); ?>
  <!-- </div> -->
  <div style="margin-top:-55px; min-height: 300px;">
    <div class="col-md-12">
          <?php $this->load->view($main); ?>
    </div>
</div>

<div class="well">
    <?php $this->load->view('Templates/foot'); ?>
</div>

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

控制器

class Pages extends Public_Controller {

    function __construct(){
        parent::__construct();
        //$this->load->library('p');

    }

public function index() {

    $data['featured_pages'] = $this->Page_model->get_featured();

    $this->template->load('public', 'default', 'pages/index', $data);

}

public function show($slug){
    $data['p'] = $this->Page_model->get_by_slug($slug);

    $this->template->load('public', 'default', 'pages/show', $data);

}

public function contact(){
    // $this->template->load('public', 'default', 'pages/contact')
    die('contact');
}

}

1 个答案:

答案 0 :(得分:0)

错误消息来自$this->p未定义。首先,您似乎在控制器($p - 方法)中定义$this->p而不是show()

$data['p'] = $this->Page_model->get_by_slug($slug);

因此,最可能的解决方案是将第24行和第25行更改为:

<?php if (isset($p) && $p) : ?> //liine 24
        <?php foreach($p as $page) : ?>